Electronic television program guide with remote product ordering

ABSTRACT

An electronic program schedule system with product ordering capability which includes a data processor for receiving program schedule information for a plurality of programs, and a user control apparatus, such as a remote controller, for generating user control commands and transmitting signals to the data processor in response thereto. The television program schedule information is displayed on a display apparatus such as a television receiver. A video display generator receives video control commands from the data processor and program schedule information and displays a portion of the program schedule information on the receiver. The program schedule information indicates the availability of a product or service for certain of the programs included in the program information, wherein the product or service is associated with the program, such as a program transcript or videocassette. The viewer utilizes the remote control apparatus to generate a first command for displaying information on the receiver describing the product or service, and a second command for placing an order for the product or service. The data processor receives the user control commands and in response to the first command causes the video display generator to display information describing the product or service and in response to the second command generates an order for the product or service.

This application is a continuation of U.S. patent application Ser. No.08/428,809, filed Apr. 24, 1995, which is a continuation-in-part of U.S.patent application Ser. No. 08/247,101, filed May 20, 1994, now U.S.Pat. No. 5,781,246, which in turn is a continuation-in-part of U.S.patent application Ser. No. 08/119,367, filed Sep. 9, 1993.

BACKGROUND OF THE INVENTION

This invention relates to an electronic program schedule system, whichprovides a user with schedule information for broadcast or cablecastprograms viewed by the user on a television receiver. More particularly,it relates to an electronic program guide that provides the user withthe capability to order products and services remotely at the userlocation simply by depressing a button on a remote control device orother user-controlled device.

Electronic program guides (“EPGs”) for television systems are known inthe art. For example, one prior system used an electronic charactergenerator to display textual schedule information on the full screen ofa television receiver. Other prior systems presented electronicallystored program schedule information to a user for viewing while allowingthe user to select display formats. Still other systems employed a dataprocessor to input user-selection criteria, then stored only the programschedule information meeting these criteria, and subsequently used thestored information to automatically tune a programmable tuner oractivate a recording device at the time of broadcast of the selectedtelevision programs. Such prior systems are generally discussed in “StayTuned for Smart TV,” published in the November 1990 issue of PopularScience.

Collectively, the prior electronic program systems may be difficult toimplement and cumbersome to use. They also fail to provide viewingcapabilities that address in a more realistic manner the viewing habitsof the users of these electronic program systems. Moreover, many ofthese systems are complex in their design and are expensive toimplement. Ease of use and economy are primary concerns of televisionprogram distributors and viewers as they contemplate dramatic increasesin the number and nature of program networks and other television-basedservices. And, as the number of television channels available to a userincreases dramatically with the advent of new satellite and cable-basedtechnologies, the utility of these prior systems substantiallydiminishes.

These prior-art systems also fail to provide the user with sufficientinformation, for example pricing and the like, about pay-per-viewevents, premium services or other packaged programming to which the userdoes not subscribe, nor do they provide the user with the capability toautomatically purchase such programming on demand or impulse. Moreover,these prior-art systems are deficient in that they fail to provide anefficient and automatic method of updating or replacing the applicationsoftware programs that implement the electronic guide at the user sites,relying instead on manual or other cumbersome forms of revision orreplacement or hardware-based systems that can not be updated withoutphysical replacement of integrated circuits and/or other parts.

Nor do these prior electronic guide systems have the capability oflinking the user to other applications or information systems which arenot part of the electronic program guide application or data.

Nor do these prior electronic guide systems provide video promotion oftelevision programs and services that are functionally linked andvisually displayed in an integrated fashion. Program promotion is animportant element of the effective marketing of television programming.The promotion of pay-per-view pay (i.e., “a la carte”) programs andother unregulated program services is particularly important to cabletelevision operators in the wake of re-regulation by the federalgovernment. The current method of promoting such programming using videois through dedicated “barker” channels that use full screen continuoustrailers (i.e., previews) which may or may not be accompanied by pricesand ordering information. Recently, such promotional videos have beenshown in split screens where part of the screen shows general scheduleinformation for a time period roughly corresponding to the time periodduring which the general program being promoted is shown. Accordingly,there exists a need for an electronic program guide which can provideimproved display and linking of video promotions with program scheduleinformation and order processing functions.

The prior electronic program guides also fail to provide the user with asimple and efficient method of controlling access to individual channelsand individual programs. The amount of adult situations involving sexand violence has steadily increased during the last 40 years. The issueof how this affects children or other viewers has gained nationalattention. Providing a parent with the ability to lock-out a channel isa well known and widespread feature of certain television receivers andcable converter boxes. Despite this availability, the feature is seldomused by parents. The main impediments to its effective use are thecumbersome ways in which it is generally implemented, as well as therequirement that entire channels be blocked in order to block access toany objectionable programming. A channel-oriented parental lock isunfair to other programmers on the blocked channel—who, for example,offer adult-oriented programming in the evening and youth-orientedprogramming the following morning—and inconvenient for viewers who wantaccess to such programs. Thus, there is a particular need for a systemwhich provides password control to individual programs and channelsusing a flexible and uncomplicated on-screen user interface.

The prior electronic program guides are also deficient in that they donot provide the user with the ability to view on demand current billingstatus and, thus, a need exists for a system which can provide the userwith current billing information on the user's demand.

An additional problem with prior program guides is that when displayingschedule information in grid format, i.e., columns representing timeslots and rows representing channels, program titles generally arewidth-wise truncated to fit into the cells of the grid. The width of agrid cell varies with the duration of the program. Since a 30 minuteprogram is allotted only a small amount of space for the program titleand description, titles and/or descriptions for half and even full hourprograms often must be truncated in order to fit into the allottedspace. Some systems simply cut off the description of a program withoutabbreviating it in any way, such that the user is unable to determinethe subject matter of the program. For example, a recent televisionprogram display included the following text in a grid cell: “Baseball:Yankees v.” Although some systems partially alleviate this problem byproviding two lines of text in each grid cell, this solution is notideal because program descriptions may still be truncated.

A similar problem arises as the time slots change, either automaticallyor in response to a user control command. Typically, 90 minutes ofschedule information is displayed at one time and the 90 minute windowis shiftable in 30-minute increments. In the case where a 30 minuteshift causes a 30 minute size grid cell to display, e.g., a two-hourmovie, it is likely that the full title of the movie will not fit intothe cell. Truncation of the title is thus required in this situation aswell. In this case, while two lines of text may be desirable to fit thetitle in the 30 minute cell, the 60 and 90 minute cells may require onlyone line of text to display the title.

The prior electronic program guides also lack a method for creating aviewing itinerary electronically while still viewing a program currentlyappearing on the television receiver. Moreover, these prior programguides leave much guess work for the user as he navigates through asequence of channels. When skimming through channels to ascertain theprogram then being displayed on any channel, commonly known as “channelsurfing,” the user needs to guess which program is currently being airedfrom the video encountered as the user surfs through the channels. Sincemuch—in some cases, up to 30%—of the programming appearing on any givenchannel at any given time is advertising or other commercialprogramming, the user is not provided with any clues as to what programis appearing on a selected channel at a given time and must thereforewait until the advertisement or commercial is over before ascertainingthe program then appearing on the selected channel. Thus a need existsfor a program guide which displays current program schedule informationfor each channel as the user surfs through the available channels.

Interactive home shopping services are also known in the art. Lacking inthe art, however, is an interactive home shopping service deployed inconjunction with an EPG permitting users of the EPG to remotely orderproducts and services associated with the EPG or the program listingsincluded in the EPG.

In addition, with the availability of techniques for electronicallyblocking the home recording of copyrighted programs, it is now possibleto prevent the loss of copyright royalties and other revenues thatresult when a home viewer makes an archival copy of a copyrightedprogram. Many viewers may be willing to pay for professional copies ofthese programs that they can no longer copy themselves by recordingoff-the-air. As a result, a new marketing opportunity is available if aconvenient means for acquiring purchased archival copies of copyrightedprograms can be provided. Users who would otherwise have produced anamateur recording of a program using consumer equipment may decide topurchase a professionally produced and packaged copy from a licenseddistributor if they are unable to record the program on their own.

According, there is a need in the art for a simplified electronicprogram schedule system that may be more easily implemented, and whichis appealing and efficient in operation. There is also a need to providethe user with an electronic program schedule system that displays bothbroadcast programs and electronic schedule information in a manner notpreviously available with other electronic program schedule systems,particularly those using a remote controller.

For example, there is a particular need for a flexible program schedulesystem that allows a user to view selected broadcast programs on aportion of the screen of the television receiver while simultaneouslyviewing program schedule information for other channels and/or serviceson another portion of the screen. There is also a need for such aprogram schedule system that permits the user to select from a pluralityof selectable display formats for viewing the program scheduleinformation It is also preferred to have a system that indicates to theuser those keys on the remote controller that are active in anyparticular mode of operation. There also exists a need for such a systemthat will give a user the capability to set a programmable reminder forviewing a program scheduled to air at a future time.

There is also a need for an electronic guide system providing the userwith comprehensive information about pay-per-view events, premiumservices or other packaged programming to which the user does notordinarily subscribe, and which provides the user with the capability toautomatically purchase such programming on demand or impulse. There isalso a need for an electronic guide system providing a reliable andefficient method of updating or replacing the application software thatimplements the electronic guide at the user sites.

There also exists a need for an electronic program guide that operatesas a shell or window to provide the user with the capability to accessother applications or information systems that are not part of theelectronic program guide application or data.

There also exists a need for an interactive home shopping servicedeployed in conjunction with an EPG permitting users of the EPG toremotely order services and products associated with the EPG or theprogram listings included in the EPG.

There is also a need for a convenient means for purchasing archivalcopies of copyrighted programs that cannot be recorded by viewers.

It is accordingly an object of the present invention to provide a systemthat will allow the user to view a broadcast program while, at the sametime, interactively viewing program schedule information for otherprograms.

It is another object of the present invention to provide the user withthe ability to select from among a plurality of display formats for theprogram schedule information.

It is yet another object of the present invention to indicate to theuser of the program schedule system those keys on the remote controlleractive in the particular mode of operation of the system at the time ofuse.

It is a still further object of the present invention to provide theuser of the electronic program schedule system with the capability ofsetting programmable reminder messages for any future program.

It is yet a further object of this invention to provide the system userwith comprehensive information about pay-per-view events, premiumservices or other packaged programming to which the user does notsubscribe and the capability to automatically purchase such programmingon demand or impulse.

It is another object of the present invention to provide an electronicguide system that provides a reliable and efficient method of updatingor replacing the application software programs that implement theelectronic guide at the user sites.

It is still another object of the electronic program guide to operate asa shell or window to provide the user with the capability to accessother applications or information systems which are not part of theelectronic program guide application or data.

It is yet another object of the electronic program guide to provide asystem whereby video promotion of television programs and services arefunctionally linked and visually displayed in an integrated fashion tofacilitate the marketing and sale of such programs and services.

It is still a further object of the present invention to providepassword control for access to individual programs, as well as channels,using a protected interactive flexible and uncomplicated on-screeninterface.

Another object of the present invention is to provide the user withcurrent programming information for all programs as the user surfsthrough the available channels.

It is yet a further object of the present invention to provide a systemin which the user can access his current billing information on demand.

It is another object of the present invention to provide a system whichoverlays television program listings against varying background views.

It is yet another object of the present invention to provide an improveddisplay of text in the grid cells comprising a page of televisionprogram listings.

It is a further object of the invention to provide an electronictelevision program guide with an interactive home shopping service forordering products and services associated with the EPG or a particularprogram.

It is a further object of the invention to provide an electronictelevision program guide with an interactive home shopping service forordering products and services associated with the EPG or a particularprogram simply by depressing a button on a remote control device orother user-controlled selection means.

These and other objects of the invention are achieved by an electronicprogram schedule system which includes a receiver for receivingbroadcast, satellite or cablecast television programs for a plurality oftelevision channels and a tuner for tuning a television receiver to aselected one of the plurality of channels. A data processor receives andstores in a memory television program schedule information for aplurality of television programs to appear on the plurality oftelevision channels. A user control apparatus, such as a remotecontroller, is utilized by a viewer to choose user control commands andtransmit signals in response to the data processor which receives thesignals in response to user control commands. A television receiver isused to display the television programs and television program scheduleand other information. A video display generator receives video controlcommands from the data processor and program schedule information fromthe memory and displays a portion of the program schedule information inoverlaying relationship with a television program appearing on atelevision channel in at least one mode of operation of the televisionprogramming guide. The data processor controls the video displaygenerator with video control commands, issued in response to the usercontrol commands, to display program schedule information for any chosenone of the plurality of television programs in overlaying relationshipwith at least one television program then appearing on any chosen one ofthe plurality of channels on the television receiver.

The EPG system of the present invention is further provided with aninteractive home shopping service permitting the user to order productsor services associated with a program from an EPG display using a remotecontrol device or other user-controlled selection means. The dataprocessor is configured to generate user product and service requestsand provide them to a central location for processing. Telephone lines,cable, optical fiber, or wireless transmissions may be used forproviding the requests to the central location.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing various components of the preferredembodiment of the invention herein.

FIG. 2 is a block diagram showing the combination of program andschedule information by the video overlay device utilized in thepreferred embodiment of the invention.

FIG. 3 depicts a remote controller that can be used in connection withthe preferred embodiment of the electronic program guide system of thepresent application.

FIG. 4 depicts an alternative embodiment of the remote controller shownin FIG. 3.

FIG. 5 shows an overlay appearing on a television screen in one mode ofoperation of the preferred embodiment of the present invention.

FIG. 6 is a menu that appears on a television screen in a MENU mode ofoperation of the preferred embodiment of the present invention.

FIG. 6A is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 7 depicts a Viewer Preference Menu that appears on a televisionscreen in one aspect of the preferred embodiment of the presentinvention.

FIG. 8 shows a Preferred Channel selection submenu.

FIG. 9 shows an impulse ordering menu that appears on a televisionscreen in one aspect of the preferred embodiment of the presentinvention.

FIG. 10 shows a Premium Services submenu that appears in one mode ofoperation of the preferred embodiment of the present invention.

FIG. 11 shows a graphic overlay appearing on a television screen in aBROWSE mode of operation of the preferred embodiment of the presentinvention.

FIG. 12 shows a graphic overlay appearing on a television screen in aBROWSE mode of operation of the preferred embodiment of the presentinvention having different information from that shown in FIG. 11.

FIG. 12A shows a graphic overlay appearing on a television screen in aBROWSE mode of operation in the present invention displaying scheduleinformation for a time and channel other than that shown in FIG. 11.

FIG. 13 shows a graphic overlay appearing in a REMINDER mode ofoperation of the preferred embodiment of the present invention.

FIG. 14 shows yet another graphic overlay appearing in a REMINDER modeof operation of the preferred embodiment of the present invention.

FIG. 15 is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 16 is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 17 is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 18 shows a grid listing of schedule information displayed in an AllListings mode of operation of the preferred embodiment of the presentinvention.

FIG. 19 shows schedule information displayed in a Listings By Categorymode of operation of the preferred embodiment of the present invention.

FIG. 20 shows schedule information displayed in a Listings By Channelmode of operation of the preferred embodiment of the present invention.

FIG. 21 shows information displayed in response to a user's request forsupplemental programming information.

FIG. 22 shows programming, ordering and video promotional informationdisplayed in a Pay-Per-View mode of operation of the preferredembodiment of the present invention.

FIG. 23 shows an ordering submenu used in conjunction with the mode ofoperation shown in FIG. 22.

FIG. 24 shows yet another ordering submenu used in conjunction with themode of operation shown in FIG. 22.

FIG. 24A shows yet another ordering submenu used in conjunction with themode of operation shown in FIG. 22.

FIG. 25 shows another grid listing of schedule information displayed inan All Listings mode of operation of the present invention.

FIG. 26 shows a Premium Services submenu that appears in one mode ofoperation of the preferred embodiment of the present invention.

FIG. 27 shows a Messages menu that appears in one mode of operation ofthe preferred embodiment of the present invention.

FIG. 28 shows exemplary messages used in connection with the menu ofFIG. 27.

FIG. 28A is an alternative message menu.

FIG. 29 shows billing information used in connection with the menu ofFIG. 27.

FIG. 30 shows a Key Lock Access menu that appears during one mode ofoperation of the preferred embodiment of the present invention.

FIG. 31 shows a menu appearing in connection with an InteractiveTelevision mode of operation of the preferred embodiment of the presentinvention.

FIG. 32 shows information that appears in a Quote Watch menu inconnection with the Interactive Television mode of operation shown inFIG. 31.

FIG. 33 shows other information that appears in connection with theInteractive Television mode of operation shown in FIG. 31.

FIG. 34 is a menu showing information that appears in a news display inthe Interactive Television mode of operation of the preferred embodimentof the present invention.

FIG. 35 is a menu showing information that appears in a sports displayin the Interactive Television mode of operation of the preferredembodiment of the present invention.

FIGS. 36a-d is a flow chart showing the operation logic required forimplementation of a computer program for the electronic program guide.

FIG. 37 is a menu showing a Locator screen for locating channel numbersand defining favorite channel lists.

FIG. 38 is an alternative menu that can be used in a MENU mode ofoperation of the electronic program guide.

FIGS. 38A and 38B show, respectively, an alternative main menu screenand a listing-by-time screen accessible from the alternative main menu.

FIG. 39 is a Lockout menu that alternatively can be used for permittingor prohibiting access to certain programs.

FIG. 40 is a Setup menu that can be used to set text location and apurchase code for premium and pay-per-view programming.

FIG. 40A shows an exemplary menu for inputting a lockout code.

FIGS. 40B through 40E show, respectively, exemplary menus for entering,confirming, clearing or changing a purchase code.

FIG. 41 is a Lockout Verify menu that is used in connection with theLockout menu of FIG. 39.

FIG. 42 is a flow chart showing the operation of the preferredembodiment of the textfit system of the invention herein.

FIGS. 43A-E illustrate one embodiment of a series of screens that may beused for ordering a product associated with a program displayed in theEPG.

FIG. 44 illustrates one embodiment of a screen that may be presented tothe user upon user activation of the ordering process while the cursoris highlighting a program listing for which a product or service isavailable.

FIG. 45 illustrates the product or service ordering feature inconjunction with the flip mode of the system of the present invention.

FIG. 46 illustrates the product or service ordering feature inconjunction with program information for a music program.

FIG. 47 is a block diagram of an alternate embodiment of the system ofthe present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

System Configuration

FIG. 1 is a block diagram showing various components of the electronicprogram schedule system generally designated as 10. Physically, thesesystem components can be located in a user's set-top cable converter boxor other signal reception or processing device, such as a satellitereceiver. Alternatively, the components can be mounted in a separatehousing, or included as part of a television receiver, VCR, personalcomputer, or multimedia player; or reside as a distributed applicationin a broadband network architecture.

An input signal 11 is connected to a receiver 12, which receives atransmitted data stream from a data provider. The data stream maycontain, for example, information about programs or services availablein a particular market, geographical or otherwise. The input signal 11can originate, for example, as part of a standard broadcast, cablecastor satellite transmission, or other form of data transmission, such asvideo dial tone. The data provider is a program information provider,the satellite uplink manager, a local cable operator, or a combinationof these sources, and the data stream contains program scheduleinformation for all television programs and other services available inthe operator's geographical market.

The data stream may be modulated and then transmitted on the cable linein any number of ways, including as part of a dedicated channeltransmission operating at a frequency of, for example, 75 MHZ. Those ofskill in the art will understand that numerous other transmissionschemes can be used to transmit the data stream, such as embedding it inthe vertical blanking interval of a program broadcast signal. As will bediscussed in greater detail below, according to the present invention,the transmitted data stream may additionally contain applicationsoftware for implementing or updating the electronic program guide atthe user site.

The transmitted program schedule data or application software isreceived by the receiver 12 on signal input line 11. The received signalis passed from the receiver to a data demodulator 13, such as a QPSKdemodulator or a GI Info-Cipher 1000R, which demodulates thetransmission and passes it to a buffer 15.

A microcontroller 16, such as a M68000EC, receives data passed to thebuffer 15. Bootstrap operating software, which may be used for capturingelectronic program guide application software updates, is stored in aread only memory (ROM) 17. The microcontroller 16 uses the receivedprogram schedule information to build a database by storing the data inappropriately organized records in dynamic random access memory (DRAM)18. The stored schedule information can be updated on a periodic basis,such as hourly, daily or weekly, or at any time when changes inscheduling or other factors warrant an update. The system also includesa system clock 19.

Alternatively, the program schedule information could be supplied in aROM, disk or other on-volatile memory, or it could be downloaded to astorage disk or other data storage device. The invention herein is notdirected to the particular method of transmission or reception of theschedule information.

If the microcontroller 16 recognizes the received data as applicationsoftware which controls the program schedule system, as opposed toprogram schedule information, it stores it in non-volatile memory, suchas an electrically erasable programmable ROM (EEPROM) 20 orbattery-backed static RAM (SRAM). This configuration allows revised orreplacement versions of the application software to be downloadeddirectly from the software developer to the user site through the cableor other transmission system.

In the case where an EEPROM is utilized, revised or replacement versionsof the application software downloaded from the developer are firststored in DRAM 18 by the microcontroller 16, under direction of thedownloading operating software stored in the ROM 17. The storedapplication software can then be checked for accuracy by, for example, achecksum analysis or other verification routine.

After the accuracy of the application software has been verified, themicrocontroller 16 initiates a routine to re-program the EEPROM 20,where the application software is permanently stored. Themicrocontroller 16 will issue proper control commands to a reprogramcircuit 21, which is adapted to supply the proper program voltage andlogic control signals 22 required to erase and write to the EEPROM. Itsupplies this program voltage, Vprog, as well as any other requiredcontrol signals, such as read or write enable, to the EEPROM 20 uponcommand from the microcontroller 16. After the EEPROM 20 has beenelectrically erased, the microcontroller 16 initiates transfer of thenew application software from the DRAM 18 to the EEPROM 20 for storing.

When a battery-backed SRAM is utilized as non-volatile memory, themicrocontroller stores the revised or replacement version of theapplication software downloaded from the developer directly in the SRAM,again under direction of the downloading operating software stored inthe ROM. The stored application software can then be checked foraccuracy by, for example, a checksum analysis or other verificationroutine.

When power is first applied to the system 10, the bootstrap operatingsoftware verifies that the program guide application software isresident in memory. If it is not resident, the bootstrap operatingsoftware waits for a download of the software. Once the applicationsoftware is resident, the microcontroller 16 executes the applicationprogram software from a dedicated portion of the DRAM 18. Alternatively,the application software can be executed directly from the non-volatilememory 20. Under control of the program guide application software, themicrocontroller 16 first verifies that the program schedule informationis resident in DRAM 18. If it is not resident, the microcontroller waitsfor a download of the program schedule information, as discussed above.Alternatively, if the application program is resident in memory, but thedatabase records containing the program schedule information data arenot yet available, the application software can be configured to carryout other tasks, such as allowing the user to carry out functions notrequiring the program schedule information data, as well as displayingan appropriate message indicating the database data is not yetavailable.

When the schedule system is operating, as discussed in greater detailhereinbelow, the microcontroller 16 takes the program scheduleinformation stored in the DRAM 18 and, in conjunction with otherdownloaded data types such as stored bit maps for the screenconfiguration and the graphic symbol or logo displays stored innon-volatile memory 20 or, alternatively, in DRAM 18, supplies it to avideo display generator (VDG) 23, which in the present embodiment may bea commercially available VGA—type graphics card, such as a Rocgen cardmanufactured by Roctec. The VDG includes a standard RGB video generator24, which takes the digital program schedule information sent by themicrocontroller 16 and converts it to an RGB format in accordance withthe bit map for the particular screen display then being presented tothe user on the television receiver 27. The configuration of each screenis shown and discussed in greater detail in the System Operation sectionbelow.

The VDG also includes a Video Overlay Device 25, which accepts the RGBvideo input, as well as an input from conventional television tuner 28,such as a conventional tuner manufactured by General Instrument or aJerrold DPBB tuner, which supplies a program signal in standard NTSCvideo format. The overlay device 25 converts and combines the RGB signalwith the signal from the tuner 28, and produces a composite NTSC outputsignal containing both the program signal and the program scheduleinformation, as shown in FIG. 2. This composite video signal is suppliedto a modulator 26, shown in FIG. 1, which can be a modulator such asavailable from Radio Shack, and then to the television receiver 27,which the user keeps tuned to the modulated channel, for example,channel 3 or 4. The composite video signal can also be supplied directlyto the television receiver 27 or other receiving device from the VDGthrough a video port 25A on the VDG.

The system components identified in connection with FIG. 1 can all beimplemented in a preferred platform by, for example, an IBM personalcomputer equipped with a transmission link and a video graphics card,such as those manufactured by Roctec. Other platforms, such as a cableconverter box equipped with a microprocessor and memory, or a broadbandnetwork also could be used. Examples of the particular components are asfollows: Microcontroller—Motorola part no. MC68331-16; ROM—TexasInstruments part no. TMS27PC512; DRAM—Texas Instruments part no. TM4256;EEPROM—Intel part no. 28F001BX-T. In any event, those of skill in theart will appreciate that the particular details of the hardwarecomponents and data storage are a function of the particularimplementation of the system, and are not the subject of the presentinvention.

As discussed in detail below, the user may navigate through the programschedule system with a remote controller, such as that shown in FIG. 3,which operates on conventional principles of remote controltransmitter-receiver logic, such as by infrared or other signaling, orother suitable user interface. The remote controller 31 communicateswith the microcontroller 16 through the remote controller receiver 29,shown in FIG. 1, which can be a Silent Partner IR receiver and whichreceives signals transmitted by the remote controller 31 and suppliesthe microcontroller 16 with a corresponding digital signal indicatingthe key depressed by the user.

A remote controller suitable for the present invention, such as shown inFIG. 3, which can be a remote controller manufactured by UniversalElectronics or Presentation Electronics′ Silent Partner, may include apower switch 32, volume 33 and mute 34 controls, an ENTER key 35, 0-9digit keys 36, four direction arrow keys 37A and 37B, a MODE key 38 andan information key 39 that is designated with a lower case “i.” Thepower 32, volume 33 and mute 34 keys operate in the same manner asconventional remote controllers typically used with present-daytelevision receivers. The numeric digit keys 36 also function in muchthe same manner as conventional remote controllers. A brief descriptionof the remaining keys follows.

The MODE key 38 takes the user through various layers of the electronicprogram schedule system 10 and generally allows the user to return to aprevious screen when he is in a submenu. The up/down direction arrowkeys 37A allow a user to navigate through the different TV programchannels when the program schedule system is in a FLIP or BROWSE mode,as will be fully described below, and also allow the user to navigatethrough highlighted bars displayed on the TV screen when in a MENU mode.The left/right direction arrow keys 37B allow the user to navigatethrough selected time periods when the program schedule system is in theBROWSE mode, as will also be described below. They further allow theuser to navigate across subject-matter categories while in the“Categories” submenu of the MENU mode, as well as to navigate acrosstime periods when the program schedule system is in a pay-per-viewordering mode and, in general, navigate in left or right directions toselect various icons and other objects. The information, or “i,” key 39allows the user to view supplemental program and other informationduring the various modes of the program schedule system. The ENTER 35key fulfills and inputs a command once the user has made a selectionfrom the remote controller keys. The function and operation of thesekeys will be made more apparent in the detailed discussion of the FLIP,BROWSE and MENU modes below.

A second embodiment of the remote controller 40 is shown in FIG. 4. Thisembodiment of the remote controller also includes a power key 41,numeric digit keys 42, direction arrow keys 43A and 43B, information key48, ENTER or SELECT or “OK” key 44, volume control 45, lockout key 45A,mute keys 46 and help key 48A. It also includes pound sign and starkeys.

This embodiment of the remote controller further includes a number oficon keys 47A and 47B, which correspond to different submenus or modesof the program schedule system. The icons 47A and 47B may also bedisplayed on the TV screen when the program schedule system isoperating. The icon keys essentially replace the MODE key 38 used in theembodiment of the remote controller shown in FIG. 3. Using these keys,the user can move from one mode to another simply by depressing the iconkey corresponding to the desired mode of operation of the programschedule system. In the embodiment of FIG. 4, the icons 47A and 47B areshown as graphic symbols situated directly above a correspondingcolor-coded key. Alternatively, the color-coded keys could be eliminatedand keys could be formed in the image of the icon itself.

The embodiment of the remote controller shown in FIG. 4 also includesthree color-coded viewer preference or favorite channel keys, 48A, 48Band 48C that are situated directly above the icon keys. Each of thesekeys indicates to the program schedule system a distinct user-created“Channel Preference” or “Favorite Channel” list, which is a listing of aspecific subset of channels for a particular user, arranged in thesequential order that the user wishes to view during operation of theprogram schedule system. The creation of the Channel Preference orFavorite Channel list is discussed in the following section. Thus, thesystem provides for at least three individual channel subsets for threeindividual users.

The remote controller of FIG. 4 also may be equipped with a “HELP” key48A, which, when depressed, causes the microcontroller 16 to retrievepreviously stored instruction messages from memory and cause them to bedisplayed on the television receiver 27. These messages offer help tothe user in the form of instructions that guide the user through theoperation of the various operating modes of the electronic televisionprogram guide. They may be text messages, or instructional video images,or audio programs, depending on the storage capacity of the system, orany combination of these. Moreover, these help messages may be createdso that they are context-sensitive, i.e., the messages displayed dependentirely upon the precise point in the operation of the electronicprogram guide that the user depresses the help key 48A. For example,information could be supplied for operation of the remote controller,for operating the FLIP or BROWSE mode (discussed below), or any othermode of operation of the guide, for impulse ordering, for setting alockout, etc. In order to accomplish this, each point of operation ofthe guide could be coded so that the microprocessor could track thecurrent operating point, for example, by temporarily storing the codereflecting the present operating point as the user operated the guide.When the user pressed the help key 48A, the microcontroller 16 wouldretrieve an appropriate set of messages based on the presently storedoperating point code. Additionally, the i key 39 could be used to carryout the function of the help key.

Additionally, each of the functions of the remote controllers can alsobe integrated into a keypad on the user's cable box or other hardware.

System Operation

In operation, the electronic program schedule system of the presentinvention functions as follows.

FLIP Mode

When the user is viewing a particular program channel on the televisionreceiver, the program schedule system defaults to a FLIP mode, shown inFIG. 5. In this mode, a graphic overlay 51 containing programminginformation for the channel currently tuned on the tuner is superimposedin overlaying relationship with a received program signal 55 on thescreen of the television receiver 27 whenever the viewer changes theprogram channel, for example, by using the up/down direction arrows onthe remote controller. The video overlay device 25, such as shown inFIG. 1, combines the computer-generated RGB video-graphic overlayinformation with the NTSC-format program signal from the tuner 28, andsupplies an NTSC-format output signal, which includes the program signalfrom the tuner and the program schedule overlay information for viewingon the television receiver 27.

The programming information contained in the graphic overlay 51 issupplied to the RGB video generator by the microcontroller. In FLIPmode, the microcontroller first searches the program schedule databasein, for example, the DRAM 18 to retrieve the programming information forthe currently tuned channel 52 corresponding to the current time; i.e.,the time at which the user just turned on the television receiver forviewing. The microcontroller 16 then supplies the current channel andprogram information to the RGB video generator 24 which converts thedigital data information to RGB format and supplies it to the videooverlay device 25.

In normal operation, the microcontroller 16 defaults to displaying allchannels offered by the cable company prioritized by numeric order,which is determined by the broadcast channel position in the radiospectrum or the marketing judgments of local cable operators. Using a“Channel Preference” submenu, or an alternative “Locator” screen, bothof which are discussed below, the user can revise the content and/orsequential order of the channels presented to the television receiver27.

In general, if the user does not issue a change-channel instruction, orother command, from the remote controller 40 within a predetermined timeinterval while in the FLIP mode, the microcontroller 16 instructs theVDG 23 to remove the graphic overlay 51 from the television receiver,thus presenting only a program signal 55 to the television receiver 27for viewing. The duration of the predetermined time interval is suchthat it allows the user sufficient time to read the programminginformation contained in the overlay. The duration of the predeterminedtime interval during which the graphic 51 overlay appears is stored in alocation in non-volatile memory 20 addressable by the microcontroller16. The user can change the duration of the time interval, by firstentering a Viewer Preference mode, and then selecting an “overlayinterval” entry. The microcontroller 16 then causes a user prompt to bedisplayed on the screen which, for example, asks the user to select anappropriate time period for displaying in the graphic overlay on thescreen. Using the numeric keys, the user can input an appropriateresponse, for example, a period between 5 and 60 seconds, and thendepress ENTER. The new interval period is then read and stored by themicrocontroller 16 in the overlay time interval location in memory.

If the user issues a change-channel command from the remote controller40 before or after the predetermined overlay period has elapsed, eitherby using the up/down direction arrows 43A, or by entering a desiredchannel number using the numeric keys 42 and then depressing the ENTERkey 44, the microcontroller 16 will cause the tuner 28 to tune to thedesired channel—either the channel immediately preceding or followingthe current channel when the up or down arrow 43A is used or thespecific channel entered on the numeric key pad by the user—and willalso search for and immediately cause to be displayed the currentprogram information for that channel. Thus, as the user flips throughthe channels, the program schedule information for any selected channelautomatically appears in the graphic overlay 51 while the actual program55 appearing on the selected channel at the particular time occupies theremainder of the screen.

The system can also be configured to issue an error message, such as anaudible beep or displayed text indicating an invalid key stroke, if theuser depresses either the left or right direction arrow keys while inthe FLIP mode.

BROWSE Mode

To initiate the BROWSE mode, the user depresses the MODE switch oncewhile in the FLIP mode when using the first embodiment of the remotecontroller 31 shown in FIG. 3. Utilizing the second embodiment of theremote controller 40 shown in FIG. 4, the user would depress the buttonbelow the BROWSE icon 47A.

In the BROWSE mode, the user is provided with the ability to scanthrough program schedule information for any channel, including, but notlimited to, the channel being viewed, while at the same time continuingto view the TV program previously selected. As shown in FIG. 11, in thismode the graphic overlay information that appears in the FLIP mode isreplaced with programming information for the channel being browsed,which may or may not be the channel currently being viewed by the user.After the user issues the command from the remote controller 40 to enterthe BROWSE mode, a graphic overlay 111 is generated, as in the FLIPmode, with program schedule information for the currently tuned channel112 and a textual BROWSE indicator 113 to remind the user of thecurrently active mode, as shown in FIG. 11.

If the user depresses either the up or down direction arrow on theremote controller 40 while in the BROWSE mode, program scheduleinformation for either the prior or next channel is displayed in thegraphic overlay portion 111 of the television receiver screen 27, whilethe tuner remains tuned to the channel program that appeared on thetelevision receiver at the time the user entered the BROWSE mode, asshown in FIG. 12, and continues to so appear. Each successive depressionof the up or down direction arrow key produces corresponding programschedule information for the selected channel. The graphic overlay mayalso include a small video window for showing the actual video signal ofa currently aired program or a clip of a future program corresponding tothe schedule information then appearing in the BROWSE overlay. In thisway, the user can simultaneously scan program schedule information forall channels while continuously viewing at least one selected program onthe television receiver. With the advent of sophisticated televisionreceivers, it may also be possible to simultaneously display multiplebroadcast programs on a single screen for viewing, or to split thescreen to show, for example, broadcast programs in combination withadvertisements. The BROWSE feature could be used in any of thesesituations.

If, at any time during scanning of the program schedule information inthe BROWSE mode, the user desires to tune the television receiver 27from the program channel currently being viewed to the program channelindicated in the schedule information in the graphic overlay, he simplydepresses the ENTER button 44 and the tuner 28 will be tuned to thatchannel. If the user does not want to view another channel and wishes toexit the BROWSE mode, thus removing the graphic overlay 111 with theprogram schedule information, he must depress the MODE key twice in thefirst embodiment of the remote controller 31. The first depression ofthe MODE key takes the user to the MENU mode, discussed below, and thesecond depression will take the user to the FLIP mode. Once in the FLIPmode, the graphic overlay will be removed after the duration of thetime-out interval has passed. In the second embodiment of the remotecontroller shown in FIG. 4, the user toggles the BROWSE icon key todeactivate the BROWSE mode.

When the user first enters the BROWSE mode and begins scanning channels,the schedule information appearing in the overlay portion 111 describesthe programs currently playing on any particular channel. In order toview programming information for later or earlier times, the useremploys the left and right direction arrows 43B. As a consequence, thesystem will display future program schedule information for theparticular channel previously selected by the up and down directionarrows, whether it is the channel currently being viewed or any otheravailable channel. The schedule information presented includes the nameof the program and program start/stop time. The instant embodiment ofthe system, in order to conserve memory, will not allow the user to viewprogramming information for a time prior to the current time. The systemcould be easily modified to provide such information if adequate memoryis made available. It may be desirable, for example, to allow a user toview schedule information for an earlier time to find a particular showand then allow the user to command the microcontroller to find anddisplay future airing dates of the show, or the microcontroller couldsimply do this automatically.

When viewing program schedule information for a future time in theBROWSE mode, the displayed time of airing 121 of the particular show 122is highlighted, as well as the channel number and service indicator 123,as shown in FIG. 12A. Such highlighted information reminds the user thathe is viewing program schedule information for a future time. Also, whenviewing program schedule information for a future time on any particularchannel in the BROWSE mode, depression of the channel up direction arrowkey on the remote controller 40 causes programming schedule informationfor the next channel to appear, which corresponds in time to the futuretime that was being viewed before the up key was depressed by the user.The channel down direction arrow key 43B functions identically in thismode.

If while viewing program schedule information for a future time inBROWSE mode the user depresses the ENTER key on the remote controller,the microcontroller 16 will instruct the VDG 23 to display a REMINDERoverlay message 130 which, as shown in FIG. 13, is displayed as a secondoverlay 131 appearing above the BROWSE overlay 132. The REMINDER message130 queries the user as to whether the system should remind the user, ata predetermined time before the start of the selected program, that heor she would like to view the selected program, as shown in FIG. 13. Ifthe user responds affirmatively, the microcontroller 16 stores reminderdata consisting of at least the channel, time and day of the selectedprogram in a reminder buffer, which contains similar scheduleinformation for all programs for which the user has set a reminder. At apre-determined time before the selected program start time, for example,five minutes, the microcontroller 16 will retrieve schedule information,including title and service, based on the reminder data, and willinstruct the VDG 23 to display a REMINDER overlay message 140 on thetelevision receiver 27, as shown in FIG. 14, to remind the user that heor she previously set a reminder to watch the selected program. TheREMINDER message 140 contains the channel, service and start time. Italso displays the number of minutes before the time of airing of theparticular show and updates the display every minute until the time ofairing. The REMINDER message 140 also displays a “TUNE” inquiry, whichasks the user if she would like to tune to the selected program. Whenthe user sets multiple reminders, the reminder overlays are stacked, forexample, in ascending order according to the time each reminder isscheduled to be displayed, and the next reminder message will appear onthe television receiver after the user takes appropriate action toremove the reminder message then being displayed. The REMINDER message(140 could also be adapted to allow the user to display or modify a listof all reminders previously set by the user. As with the overlay displaytime period in the FLIP mode, the user can modify the time period beforea selected program that the REMINDER message appears by entering theViewer Preference mode and revising the time entry.

MENU Mode

Using the remote controller 31 shown in FIG. 3, the user can enter theMENU mode from the BROWSE mode or from the FLIP mode by toggling theMODE button 38 once or twice, respectively. Using the remote controller40 of FIG. 4, the user would simply depress the key 47B corresponding tothe MENU icon.

Referring to FIG. 6, in the MENU mode, the system displays a pluralityof menu items and icons, which correspond to and allow user selection ofdistinct program schedule information display formats, local cablesystem message boards and other on-line information services. The MENUscreen shown in FIG. 6 is a full-screen display. In the embodiment shownin FIG. 6, there are four vertically selectable horizontal bars 61-64,which are accessed using the up and down direction arrows 43A on theremote controller 31 or 40. At the extreme left of each bar, anidentifying icon 61A-64A is displayed, which identifies the informationcontained in that bar. In the embodiment of FIG. 6, the “TV GUIDE” icon61A in the first bar corresponds to program schedule information from TVGuide® magazine, the “NOW SHOWING” icon 62A in the second bar 62corresponds to pay-per-view and premium service events, the “MSO Logo”icon 63A in the third bar 63 corresponds to Customer Service or localcable company information messages, and the circular icon 64A in thefourth bar 64 corresponds to other interactive services available to theuser, or in the case of broadband networks, other venues, e.g., homeshopping, banking or telephone use. As also shown in FIGS. 6 and 6A,each bar also contains a textual description of its contents.

When the user first enters the MENU mode, the system defaults toselection of the program schedule bar. When a particular bar isselected, the textual description is removed and a plurality of icons oridentifying windows are displayed adjacent the identifying icon. In FIG.6, the program schedule bar 61 is selected. Using the up or downdirection arrow key on the remote controller 40, the user selects avertically adjacent bar. FIGS. 15-17 show, respectively, selection ofthe Pay-Per-View bar 62, the Customer Service or Messages bar 63 and theInteractive TV services bar 64.

An alternative MAIN MENU screen 215 is shown in FIG. 38. Certainselection screens accessible from the menu shown in FIG. 38 are shown inFIGS. 38A and 38B. It has three horizontally selectable bars: programschedule 205, Home Theater 206 and Customer Service 207. The MAIN MENUscreen 215 also contains an additional “Locator” identifier, which isdescribed below.

Once a particular bar in the MENU screen is selected, the user canselect a particular icon from the plurality of horizontally selectabledisplayed icons 65A-65C by using the left or right direction arrow andthe ENTER key on the remote controller 40. Each icon contains agraphical symbol appearing in a background window of a particular color.When a particular icon is selected, it is offset from its backgroundwindow and the color of the window changes. In FIG. 6, the grid icon 65Aimmediately adjacent the “TV GUIDE” icon in the first bar 61 isselected.

The function corresponding to the selectable entries in the MAIN MENUscreen will now be discussed with reference to FIG. 6. It will beappreciated by those of skill in the art that the same functionalityapplies in the categories shown in the MAIN MENU 215 shown in FIG. 38.

In the uppermost vertically selectable horizontal bar 61, the first gridicon 65A represents an “All Listings” mode in which the program scheduleinformation is displayed in a grid listing, such as that shown in FIG.18. Alternatively, a single column grid-like display could be used, asthat shown in FIG. 25. In this format, the vertical y-axis identifiesthe channel number and service while the horizontal x-axis identifiesthe time. The screen display of FIG. 18 also contains in the upperleft-hand corner a mode identifier 180, in this case the notation “AllListings,” to remind the user of the current operating mode of thesystem. Directly underneath the mode display is a highlighted display181 of the channel that the user was watching before entering the MENUmode. In the upper right-hand corner, a logo icon 182 appears in awindow directly above a date/time identifier 183, which alternativelydisplays the current date and time.

In the center of the screen display shown in FIG. 18 is a graphicalActive Key Display (AKD) 184 which indicates to the user those keys onthe remote controller that are active for that particular mode of theprogram guide display system. For example, in the screen display of FIG.18, the cursor can only move up, down or to the right. If the user wereto depress the left direction arrow key on the remote controller at thatpoint, the system would not carry out any function since the cursor cannot move to the left. Thus, the left arrow key is not active so itsimage is not displayed on the AKD 184. Similarly, since the system willonly respond to a depression of the up, down or right direction arrowkeys and the ENTER key, they are the only key images displayed on thegraphical AKD 184. The MODE key, though not displayed, is always activeto change from one mode to another. When the user first enters the AllListings guide, the time listing begins by default at the half-hourimmediately preceding the current time unless the current time is on thehour or half-hour, in which case the display begins with the particularhour or half-hour, and the channel listing begins at the last channelbeing viewed by the user before entering the MENU mode. For example, inFIG. 18, the current time is displayed as 7:13 p.m., the time listingbegins at 7:00 p.m. and the channel listing begins with channel 4.

In the All Listings mode, a moveable highlighted cursor 185 is used toindicate the currently selected program to the user. The usermanipulates cursor movement using the direction arrow keys on the remotecontroller 40. Furthermore, the entire information display pages upwardif the cursor is placed at the bottom of the screen and the downdirection arrow is depressed, and similarly pages to the left if thecursor is at the extreme right side of the display and the rightdirection arrow is depressed. In this way, the user can navigate throughthe entire program schedule.

The folder icon 65B immediately to the right of the All Listings icon inthe top horizontal bar 61 of FIG. 6 identifies a “Category Listing” modein which program schedule information is displayed and categorized byprogram content, as shown in FIG. 19. The particular listing shown inFIG. 19 includes the categories of Movies, Sports, News and Children190A-190D. The database record stored for each listing contains acontent-specific identifier so the microcontroller can search thedatabase and categorize the information by content for purposes ofdisplaying it in the Category Listing mode. As shown in FIG. 19, theuser can manipulate the cursor left or right to highlight any one of thecategories which appear at the head of the listing. In FIG. 19, the“Movies” category 190A is selected. As shown, the user is given adisplay of all movies, prioritized by time and then alphabetically bytitle of show, beginning with the half-hour immediately preceding thecurrent time unless the current time is on the hour or half-hour, inwhich case the display begins with the particular hour or half-hour. Thescreen display shown in FIG. 19 also includes a textual description ofthe current operating mode of the program schedule system, as well asthe graphic AKD 184, similar to that used in connection with the AllListings mode.

As with the All Listings mode, if the user highlights a show which iscurrently airing, he can immediately tune to that show by depressing theENTER key on the remote controller 40. If the highlighted show is onethat will appear at future time, the user is again given the option ofsetting a REMINDER message.

The triangular icon 65C at the far right of the TV GUIDE bar 61 in thedisplay of FIG. 6 identifies a “Channel Listing” mode in which theprogram schedule information is categorized and displayed by channel, asshown in FIG. 20. The screen display shown in FIG. 20 again includes atextual mode identifier 201, the graphic AKD 184, and the windowincluding the logo icon 182 and alternating time/date display 183. Atthe head of the program listing is a list of several consecutivechannels 202A-202C beginning with the last channel viewed by the userbefore entering the Channel Listing mode. The channel in the middlewindow 202B is highlighted and is the channel for which scheduleinformation is displayed. The display identifies those programsappearing on the highlighted channel beginning with the half-hourimmediately preceding the current time unless the current time is on thehour or half-hour, in which case the display begins with the particularhour or half-hour. The user can display further future listings bymanipulating the cursor to the bottom of the screen and paging thedisplay, as previously described. The user can also change the selectedchannel by manipulating the left or right direction arrow keys on theremote controller 40. When the user issues a change-channel command inthis manner, the next consecutive channel will be displayed in thehighlighted window 202B in the channel string at the head of thedisplay, and schedule information for the newly selected channel will bedisplayed on the television receiver 27.

As with other modes, if a user wishes to tune to a highlighted programthat is currently airing, he can do so by simply depressing the ENTERkey on the remote controller 40, and if the user wishes to view aprogram that airs at a future time, the user is again given the optionof setting a REMINDER message.

In each of the FLIP, BROWSE and MENU modes, a lower case “i” iconappears at a number of occasions in connection with certain programlistings, such as movies, such as the “i” 203 shown in FIG. 20. Any timethis icon appears, the user can view additional programming information,generally comprising a textual description of program content and/orother information related to the program, such as the names of castmembers and the like, by depressing the “i” key 48 on the remotecontroller 40. An example of a display of such additional information isshown in FIG. 21.

The second horizontal bar 62 appearing on the screen in the MAIN MENUmode shown in FIG. 6 is the “Home Theater” Listing. It corresponds toPay-Per-View events or services, specialized programming, and PremiumService programs. When this category is chosen by the user, thetelevision receiver displays information as shown in FIG. 15. The firsttheater-ticket icon 150 that appears in this Home Theater bar identifiesa format in which the Pay-Per-View events and premium services aredisplayed, as shown in FIG. 22. As with other modes, the user canmanipulate the cursor to highlight and select any particular show. Also,the user can obtain additional information about the Pay-Per-View eventor service by depressing the “i” key 48 on the remote controller 40. ThePay-Per-View menu screen display shown in FIG. 22 also includes a videodisplay section 220 in which short promotional clips of current andfuture events and services can be shown to the user while the user isviewing the Pay-Per-View scheduling information. The display of FIG. 22is bit mapped such that the advertising clips may be shown in the lowerleft quadrant of the screen. The clips may be shown randomly in thevideo display section 120 or, alternatively, the clip shown couldcorrespond to the particular selected entry on the list of events, andwould change automatically as the user navigated through the list.

When a user highlights a Pay-Per-View event or service by manipulatingthe cursor to the desired event or service using the direction arrowkeys on the remote controller 40, he can order the event or service bydepressing the ENTER button on the remote controller, thus linkingschedule, promotional and ordering functions. If the user selects aparticular Pay-Per-View event or service in this manner, the programmingschedule system will next present to the user a Pay-Per-View orderingscreen such as that shown in FIG. 23. The display includes a figurerepresenting the cost of the event or service. The display also asks theuser to choose from among a plurality of scheduled airing times230A-230C, as well as whether the user would like to see a REMINDERmessage prior to the start of the Pay-Per-View event or service. Theuser responds to these inquiries by using the direction keys on theremote controller 40 to manipulate the cursor to the proper response andthen depressing the ENTER key. After the user has ordered a Pay-Per-Viewevent or service, the program schedule system will present the user withtwo ordering confirmation submenus, such as shown in FIGS. 24 and 24A.In either of these submenus, the user can confirm or cancel thePay-Per-View event or service.

If the user confirms the order, the microcontroller 16 stores thePay-Per-View ordering information in a location in memory. The orderinginformation can then be transmitted to the cable operator by themicrocontroller 16 either by phone line or on the cable line where thesystem has two-way communication or other such interactive capability.Alternatively, a computer at the cable operator location can interrogatethe memory where the microcontroller stored the Pay-Per-View orderinginformation. At the appropriate time, the cable operator supplies thePay-Per-View event or service and it is received by all users who haveordered the program.

The second icon 151 in the Pay-Per-View bar of FIG. 15 identifies aspecialized broadcast, cable or satellite programming service to whichthe user has access via the electronic program guide. In this mode, theelectronic program guide application software acts to connect the user,through an appropriate data transmission link, to the programmingservice, at which point the user interacts with the service.Alternatively, the electronic program guide provides the navigationsoftware, including the menus and scheduling information, for theparticular programming service. Such a service could be, for example,Your Choice TV (“YCTV”), a service offering reruns of highly ratedbroadcast and cable programs, in which case the icon may take a formsuitable to identify YCTV. The programming available on YCTV is thensupplied to the user via the programming guide system.

The last icon 152 appearing in the Pay-Per-View bar of FIG. 15identifies a display format which lists all Premium Services offered bythe cable operator, as shown in FIG. 26. In this mode, the user canselect for impulse ordering any one of the premium services bymanipulating the cursor using the direction arrow keys on the remotecontroller and depressing the ENTER key. Similar to Pay-Per-Viewordering, the system will present the user with a series of orderingdisplays and, if a service is ordered by the user, it will confirm theuser's request using another other submenu. If confirmed, themicrocontroller 16 will store the ordering information or transmit itdirectly to the cable operator. Once the order has been confirmed, themicrocontroller can immediately allow the user access to the orderedpremium service. In this manner, the user can order premium events orservices on demand.

If, during FLIP or BROWSE modes, a user views a channel or scheduleinformation for a service not subscribed to by the user, themicrocontroller 16 causes an ordering submenu to appear instead ofdisplaying a program signal along with the graphic overlay, as shown inFIG. 9. This submenu indicates to the user that she does not currentlysubscribe to the selected service, and then asks the user if she wouldlike to order the service. If the user responds affirmatively, theprogram schedule system takes the user to the ordering submenu discussedabove. In this manner, the user can order premium events or services onimpulse. Many variations of this premium service ordering function arepossible. For example, upon depressing the ENTER key while the screenshown in FIG. 9 is displayed, the user may be presented with the optionto order the selected service or a package of programming services thatincludes the selected service. This feature may be implemented byreceiving and storing information identifying packages of programservices in the DRAM 18. When the user depresses the ENTER key while thescreen in FIG. 19 is displayed, microcontroller 16 may then beprogrammed to check DRAM 18 to determine if the particular premiumservice is part of any package currently being offered and present theuser with the option to purchase a programming package or the individualservice.

The third horizontal bar 63 in the MENU mode shown in FIG. 6 is the“Messages” or “Customer Service” listing. As shown in FIG. 16, the firstenvelope icon 160 represents message information available from thecable operator. When the user selects the message icon, he is presentedwith a screen display of currently available messages, as shown in FIG.27. The display shown in FIG. 27 includes cable system messages 270 andbilling information 271. If the user selects the cable system messagesoption 270, she is presented with a message pertaining to the localcable operator, such as that shown in FIG. 28. If the user selects thebilling status option 271 shown in FIG. 27, she is presented with adisplay of current billing information, such as that shown in FIG. 29.This information may include a history of purchases charged to the user,current balance information, pending orders, and, an indication ofavailable credit, which can be an authorized debit limit previouslyarranged with the cable or other operator. Thus, a user could specifyonly a certain pre-set spending limit. Once the amount of charges frompay-per-view events reaches the limit, the microcontroller would notpermit further ordering of events. An alternative messages menu is shownin FIG. 28A.

The next icon 161 in the Customer Service information bar 63 of FIG. 16identifies a “Viewer Preference” mode, which allows the user to createor revise a number of program schedule system operating parameters. Onceselected, this display presents the user with several preference optionsconcerning certain operating parameters of the program schedule system,as well as the viewing of certain channels and/or certaincontent-specific programming, for example, those shown in FIG. 7.

The first option shown in FIG. 7 is the “Parental” option 70, which canalso be expressed as a “Key Lock Access” option. Once this option isinitially selected by the user, the system displays a “Key Lock Access”submenu such as that shown in FIG. 30.

The Key Lock Access menu shown in FIG. 30 allows the user to controlaccess to individual channels and programs or events by requiring theuser to enter an access code “key,” consisting of a user-specified fourdigit code in the specific embodiment discussed herein, before orderingor viewing these preselected channels, programs or events. The menudisplay shown in FIG. 30 shows a series of subject categories that areentries in the vertical yaxis selectable by the user. A particularsubject category is chosen by using the up or down direction arrow keyson the remote controller 40 to highlight the desired entry. Once theuser selects a particular subject category, the left and right arrowkeys are used to navigate within the chosen category.

The first subject entry shown in FIG. 30 is the “Parental Guidance”category 301. Once the user selects this category by manipulating thecursor to highlight the entry, the cursor can be then moved horizontallyto an active window 302 which displays and selects one the five letterrating items in the category. The letter items represent ratings ofprogram content as follows: “V” for violence, “N” for nudity, “L” forlanguage, “AS” for adult situations and “PD” for parental discretion.Once the user selects a particular item, such as “L”, by moving to theactive window 302 using the right direction arrow key, depressing theENTER key will indicate to the microcontroller 16 that a key lock accesshas been selected for programs rated with a “L” rating for violent orexplicit language. The system indicates activation of a key lock accessby displaying a key icon directly below the “L” category display. Once akey lock access is set, it can be deactivated by selecting the categoryletter and then depressing the ENTER key. This action causes the keyicon to disappear. The user can change the rating category in the activewindow 302 by using the left or right direction arrow keys on the remotecontroller 40, images of which are displayed on the screen adjacent theactive window as a reminder to the user. In this manner, the user canselect other rating categories for setting a key lock access for any ofthe program content identifiers appearing in the Parental Guidancecategory.

The key lock access code itself consists of a four digit code, which theuser can enter and modify at any time. To do so, the user highlights thefourth vertically selectable entry “Change Key Lock Access Code,” 304 bymanipulating the cursor to highlight it using the direction arrow keyson the remote controller. Once highlighted, the user enters a new fourdigit code or revises the then existing code and depresses the ENTERkey. The microcontroller 16 then identifies the new four digit key lockaccess code and stores it in memory. The user can clear the key lockaccess code, as well as all other previously activated keys, by movingto the last entry in FIG. 30, “Clear Key Lock Access Code and All Keys,”305 which highlights the “OK” window, and then depressing the ENTER key.This action clears and deactivates all previously set keys, as well asthe key lock access code.

The schedule information database record for each program contains afield that corresponds to the program content identifiers in theParental Guidance category. During operation, the microcontroller checksthis field in response to a user command to tune to or order a program,or to display its corresponding schedule information before carrying outthe tuning, ordering or displaying function. If the parental guideidentifier in the program schedule information database record matchesany one of the activated parental guidance identifiers shown in FIG. 30,the user will be prompted to enter the four digit key lock access codebefore the system takes any further action. If the entered code matchesthe key lock access code previously entered and stored by the user asdescribed above, the system will carry out the user request to tune tothe program, to order it, or to display its corresponding scheduleinformation. If the code is not recognized by the system, no furtheraction will be taken and the user's request will be denied.

By manipulating the cursor using the direction arrow keys to highlightthe second entry, “MPAA ratings,” 308 the user can also set a key lockaccess for programs based on their MPAA rating code, as also shown inFIG. 30.

As with the Parental Guidance category, once the MPAA rating categoryhas been selected, the user can move horizontally within the category tothe active window 306 to select one the five rating codes, i.e., “G” forgeneral audiences, “PG” for parental guidance, “PG13” for suggestedparental guidance, no one under 13 admitted without an adult, “R” forrestricted and “X” for x-rated. As with the Parental Guidance category,by selecting a particular rating—by using the left or right directionarrow keys until the particular rating code appears in the activewindow—and then depressing the ENTER key, the user sets a key lockaccess for the rating, in which case a key icon appears below the ratingcode. And, as with the Parental Guidance category, once a key lockaccess is set, the system will prompt the user to enter the four digitkey lock access code anytime a request is made to tune to, order ordisplay schedule information for a particular program having a ratingcode which matches a rating code for which key lock access has beenactivated.

The Key Lock Access mode also includes a subject category 303 forcontrolling access to channels, which may be entitled, for example,“Channel Block” or “Channel Lock.” As with the Parental Guidance 301 andMPAA 308 categories, the user navigates to the Channel Block category303 by manipulating the cursor using the direction arrow keys on theremote controller and depressing the ENTER key. Once the Channel Blockcategory 303 has been entered, the user can move horizontally to anactive window 307, which in FIG. 30 indicates channel 2. Once the userhighlights this window by manipulating the cursor using the directionarrow keys on the remote controller 40, a key lock access can be set forthe channel appearing in the active window. This is done, as with theother subject categories in the Key Lock Access mode, by depressing theENTER key, which again causes a key icon to appear below the channelnumber in the active window. The user can move to the prior channel orto the next channel in sequence by depressing either the left or rightdirection arrow key on the remote controller 40. In this manner, theuser can activate a key lock access for any available channel.

As with the Parental Guidance 301 and MPAA 308 categories, once a keylock access is set for a particular channel, the system will prompt theuser to input the key lock access code prior to carrying out aninstruction to tune to or order that channel. If the input key lockaccess code matches the previously stored access code, the user'sinstruction is carried out. Otherwise, the user's instruction isignored. Thus, the user can control access to the audio and videoprogram content of any available channel. In this instance, themicrocontroller 16 will not allow audio or video program signals to passto the VDG, but it will allow schedule information to appear for thechannel.

An alternative method for effecting lockout of programs is accomplishedusing a “Lockout” screen, as shown in FIG. 39. In addition to limitingaccess to programs based on the Parental Guidance, MPAA and channelcriteria, as discussed above, access may be limited on the basis ofprogram title. FIG. 39 shows an alternative Lockout screen 250 that canbe used to permit or limit access to programs based on program title, inaddition to the aforementioned criteria. Other parameters also may beincluded, such as time of day, day of week, credit limit, and contentcategory (e.g., talk shows).

To enter the Lockout screen 250 shown in FIG. 39, the user must enter amulti-digit lockout code using the numeric digit keys 42 and the enterkey 44 on the remote controller 40. The lockout code is set initiallywhen the system is first used or installed. To set a lockout code in thefirst instance, the user accesses a Setup screen 260, such as that shownin FIG. 40. The Setup screen 260 will automatically appear the firsttime the electronic program guide is installed and initialized. Foraccess during normal operation of the electronic program guide, asuitable access path to the Setup screen 260 may be provided, such asfrom an appropriate icon in the MAIN MENU 215.

In the Setup screen 260 of FIG. 40, the user can navigate to the LockoutCode category 265 and set a new lockout code using the appropriatenavigation and selection keys on the remote controller 40. A suitablemenu for inputting the lockout code is shown in FIG. 40A. Once enabled,the lockout code must be used to set or modify locks, to view apreviously locked program, or to clear or change the lockout code. Thememory location of the stored lockout code also should be remotelyaccessible, such as by the local cable company, in case the user forgetsthe lockout code and it must be erased.

Once the lockout code is entered and the Lockout screen 250 of FIG. 39is displayed, navigation within the screen is controlled by thedirection keys 43A and 43B on the remote controller 40. Using the up anddown direction keys 43A to move the selection cursor, either the MovieRating 251, Parental Guidance 252, Channel 253, Locked Program 254 orLockout Code 255 category can be selected. The left and right directionkeys 43B are then used to navigate inside the selected category.

Clearing a previously set lockout code is accomplished by moving theselection cursor to the “Clear” entry 256 in the Lockout Code category255 and depressing the enter key 44 on the remote controller 40. Thiscauses the microcontroller to clear the lockout code stored in memory,as well as all locks previously set by the user. To change the currentlockout code, the user navigates to the “Change” entry 257 in theLockout Code category 255 and depresses the enter key 44 on the remotecontroller 40. The user is then prompted to enter a new lockout code,which is subsequently stored in memory by the microcontroller.

To set a lock in either the Movie Rating 251 or Parental Guidance 252category, the user navigates to the selected entry in FIG. 39 bymanipulating the selection cursor using the direction keys 43A and 43Bon the remote controller 40, and then depresses a lockout key on theremote controller, such as the padlock key 45A shown in FIG. 4. Themicrocontroller will appropriately modify the display to indicate that alock has been set, for example, by changing the color of the text or thebackground in the selected entry window, or by displaying an appropriateicon next to the text in the selected entry window. In FIG. 39, apadlock icon 258 appears in the window of the “PG” entry in the MovieRating category 251. Toggling the lockout key while the selection cursoris positioned on a selected entry will alternately enable and disablethe lockout function for that entry.

Similarly, to set a lock for a particular channel, the user selects thechannel using the selection cursor and then depresses the lockout key.

In FIG. 39, the channel “4 KCNC” entry in the Channel category 253 hasbeen locked, which is indicated by the inverse video and padlock iconappearing in the window.

Program locks also may be set by title, which can be effected in severalways. For example, when the above-described FLIP or BROWSE mode of theelectronic program guide is enabled, thereby causing the title of aprogram to be displayed along with other program schedule information ina window superimposed on the actual program signal then being received,the user can limit access to the program corresponding to the displayedprogram information by depressing the lockout key 45A on the remotecontroller 40. The user also may limit access to the currently tunedprogram by depressing the lockout key 45A on the remote controller 40while viewing the program, regardless whether the FLIP or BROWSE modesare enabled. In this instance, the microcontroller first removes theprogram signal from the display and then accesses the scheduleinformation database record for the program then appearing and sets anappropriate flag to indicate the program has been locked. Also, whenviewing program schedule information in the grid or category listings,as discussed above and shown, for example, in FIGS. 18-20, the user alsocan tag a program for lockout by highlighting it with the selectioncursor and then depressing the lockout key 45A on the remote controller40.

In each of these instances, the microcontroller then stores the programtitle in a lockout title list stored in memory along with any othertitles that previously have been locked out by the user. Individualitems in the lockout title list are displayed in alphabetical order inthe “Locked Program” window 259 shown in FIG. 39, and the user mayscroll through the list by positioning the selection cursor on theLocked Program window 259 using the up and down direction keys 43A onthe remote controller in FIG. 40 and then using the left and rightdirection keys 43B to scroll through the list one item at a time. Inorder to save memory space, alternatively, the microcontroller may beprogrammed to set a flag or otherwise mark the particular databaserecord containing the program schedule information for the program thatis to be locked out, and to thereafter access the database to retrievethe title information when it is to be displayed, such as when theviewer is reviewing the lockout title list in the Locked Program window259.

Once an individual title has been locked out, the microcontroller can beprogrammed optionally to display an appropriate lockout icon, such as apadlock, whenever program schedule information for the locked program isto be displayed, such as in the window overlay of the FLIP or BROWSEmode, or in the various grid and category displays available in the MAINMENU displays. The system also may display an appropriate text messageif someone tries to access the program signal of a previously-lockedprogram. Of course, once a program is locked, in all instances themicrocontroller prevents access to the actual program signal (includingboth the audio and video portions of the program signal) until anappropriate code is entered or the lockout is removed.

Several methods can be used to block programs at their time of airing.For example, in the case of the Movie Rating, Parental Guidance andChannel categories, the schedule information database record for eachprogram is provided with a field that corresponds to the rating, programcontent identifier or channel appearing, respectively, in the MovieRating 251, Parental Guidance 256 and Channel 253 category of theLockout screen 250 shown in FIG. 39.

During operation, the microcontroller checks the appropriate field inthe database record in response to a user command to tune to or order aprogram before carrying out the tuning or ordering function.Additionally, the lockout code also may be used to restrict access toprogram schedule information. In this instance, the microcontroller alsowould check the appropriate field in the schedule information databaserecord before displaying schedule information for a program.

If the movie rating, parental guidance or channel identifier in theprogram schedule information database record matches any one of thelocked-out entries indicated in the Lockout screen 250, a Lockout Verifyscreen 300 is displayed in overlaying relationship with the video signalthen being displayed on the television receiver, as shown in FIG. 41.The user will be prompted to enter the previously set lockout codebefore the system takes any further action. As an added securitymeasure, asterisks will be displayed as the user enters the lockoutcode. If the entered code matches the lockout code previously enteredand stored by the user as described above, the system will carry out theuser request to tune to or order the program, or to display itscorresponding schedule information. If the code is not recognized by thesystem, no further action will be taken and the user's request will bedenied. In this case, the Lockout Verify screen 300 will remaindisplayed on the television receiver waiting for a correct code to beentered. If no action is taken by the user, the Lockout Verify screen300 will be removed after a predetermined time-out period, such as oneor two minutes.

Similarly, in the case of lockout by title, the microcontroller alsocould check the title field in the schedule information database recordand compare it with the list of program titles for which the userpreviously set a lock. If, as described above, the microcontroller doesnot maintain a list of the actual titles of programs locked by title, asuitable identifier can be set in a field in the database record toindicate that a program has been locked by title when the user firstsets the lock, and, thereafter, the microcontroller could check thatfield in response to a user request to tune to or order a program, ordisplay schedule information.

An alternative method for effecting lockout involves the use of aportion of the real-time program signal being received by the televisionreceiver. With this method, codes corresponding to a program's rating,parental guidance category, title or channel are inserted into andtransmitted along with the program signal, such as in the vertical orhorizontal blanking intervals, or on raster scan lines that are notvisible on the television receiver. When the program signal is received,these codes are stripped from the program signal and stored in memory.Methods and apparatus for the insertion transmission and reception ofdigital codes carried on a program signal are known in the art.

After the transmitted codes have been separated from the program signaland stored in memory, the microcontroller can compare them with thelockout criteria set by the user in the Lockout screen and takeappropriate action, as described above.

The Setup screen 260 shown in FIG. 40 also contains a Purchase Codecategory 270, which allows the user to set a numeric purchase code thatmust be entered before any premium channels or pay-per-view programs canbe ordered. The Setup screen 260 shown in FIG. 40 includes entries forsetting a new purchase code and for clearing or changing a previouslyset password. Appropriate menus for setting, confirming, clearing orchanging the purchase code are shown in FIGS. 40B through 40E. Once auser sets a purchase code, the microcontroller thereafter will display aPurchase Code Verify screen in response to a user request to tune to ororder a premium services channel or pay-per-view program. The PurchaseCode Verify screen works in a manner similar to the Lockout Verifyscreen 300 in that the user is prompted to enter the previously setpurchase code password before the microcontroller will tune to or orderthe requested program. If the correct purchase code is not entered, themicrocontroller will take no further action and the Purchase Code Verifyscreen will remain displayed waiting for input of the correct code. Ifno action is taken within a predetermined time-out period, the PurchaseCode Verify screen will be removed.

The next option shown in FIG. 7 is the Channel Preference or “FavoriteChannel” list option 71. By highlighting this icon and depressing theENTER key on the remote controller 40, the user is presented with asubmenu on the screen such as that shown in FIG. 8.

In normal operation, the program guide system presents channels to theuser in numerical order in response to an up or down change-channelcommand issued by the user using one of the direction arrow keys on theremote controller. The channel number presentation sequence includes allchannels offered by the cable company in the order of which they aremodulated onto the channel by the operator.

The program guide system also provides the capability of selecting fromamong several user-defined channel presentation sequences, which areactivated using one of the three “check mark” icon keys 48A, 48B or 48Con the remote controller 40 shown in FIG. 4. Each of these keysrepresents a preferred particular list of channels which a particularuser selects and which the microcontroller stores in memory as a“Channel Preference” list, as discussed in detail below. To activate oneof these preferred channel lists, the user depresses the correspondingcheck-mark icon key, in which case the microcontroller may display thechosen icon on the screen in the graphic overlays and full screendisplays to remind the user that a particular channel preference list isbeing used by the system. Once a preference list is activated, thesystem will limit the tuning of the television receiver and the displayof schedule information only to those channels that are designated inthe activated viewer preference list.

To revise the content and/or sequential order of the channels in theChannel Preference list, the user enters the MENU mode of theprogramming guide system. To enter the MENU mode from the FLIP mode, theuser twice depresses the MODE key 38 when using the remote controller 31of FIG. 3. To enter the MENU mode when using the alternative embodimentof the remote controller 40 of FIG. 4, the user simply depresses theMENU icon key 47B.

When first entered, the MENU mode has a screen display such as shown inFIG. 6. To select the submenu for editing the Channel Preference list,the user first selects the third horizontal bar 63, which can be titled,for example, “Messages” or “Customer Service,” by manipulating thecursor using the down direction arrow key, as shown in FIG. 7. Thescreen of FIG. 6A is thereby displayed. The user then selects the secondicon 161 appearing in that bar, indicated with a check mark, whichcorresponds to a “Viewer Preference” mode, by highlighting the iconusing the direction arrow keys and again depressing the ENTER key. Thisaction will cause the microcontroller 16 to display a Viewer Preferencesubmenu such as that shown in FIG. 7. By selecting the ChannelPreference or “Favorite Channel” entry 71, the user enters the ChannelPreference submenu, shown in FIG. 8. If the user has not already doneso, he would then depress the particular check-mark icon key on theremote controller 40 of FIG.4 to create or revise the particular channelpreference list.

In the Channel Preference menu shown in FIG._8, a list 80 of allchannels available on the particular cable system is displayed on theleft side of the television receiver screen, labeled “Choices” in FIG.8, and the viewer's preferred list 81, designated “Selected” in FIG. 8,is displayed on the right side. If a particular code, such as an END or“1” symbol appears in the first (uppermost) position 82 of the viewerpreference list 81, the system displays information for all channels innumerical order in all modes of operation. This is the default mode ofthe system.

By selecting channels in sequence from the available list 80 and placingthem in the desired order in the preference list 81, the user can selecta subset of channels and/or rearrange the default sequence in responseto a channel up or channel down command from the user. This isaccomplished by highlighting a channel in the available list 80 usingthe up and down direction arrow keys on the remote controller 40 anddepressing the ENTER key 44, which stores the entry temporarily in abuffer.

The microcontroller 16 stores a list of all channels previously enteredin the viewer preference list 81. As a particular channel is highlightedby the user when navigating through the available channel list 80displayed on the left side of the television screen, a window 84 appearsadjacent to the particular channel highlighted by the user. If theparticular channel already appears in the viewer preference list 81, thesystem displays a “DELETE” message in the window 84 as a reminder thatthe channel was previously selected from the available channel list 80and can only be deleted from the list 81, which is accomplished bydepressing the ENTER key 44. If the particular highlighted channel inthe list 80 was not previously selected, the system displays a “SELECT”message in the window 84 as a reminder that the particular channel willbe selected for addition to the viewer preference list 81 if the userdepresses the ENTER key 44. The microcontroller 16 inserts a selectedchannel at the bottom of the list 81. In this manner, the user canselect or delete channels from the viewer preference list in any desiredorder.

The available channel list 80 may also be provided with categoricalentries 83, such as movies, news, sports or children's shows. The usermay also highlight any of these entries and put them into the viewerpreference list 81. If the user does include a category in his viewerpreference list 81, when the user issues channel up or down commands,the system will display, in sequence, first the user's selectedpreferred channels in numerical order and then all channels having aprogram whose content corresponds to the selected category or categoriesat the time.

Once the user has revised the channel preference list 81 in thedescribed manner, the microcontroller 16 will follow the storeduser-specified channel sequence in response to a change-channel commandmade by the user employing one of the direction arrow keys. To activatethe viewer preference list, the user depresses one of the threecheckmark icon keys 48A, 48B or 48C on the top of the remote controllershown in FIG._4. The viewer preference list can be used to selectivelylimit tuning of the television receiver or display of scheduleinformation in any of the operating modes of the electronic programguide. In the present embodiment, once a preference list is activated,the system will limit the tuning of the television receiver and thedisplay of schedule information in the FLIP, and BROWSE modes, as wellas in the grid category and channel listings in the MENU mode, only tothose channels designated in the activated viewer preference list. Thetuner can not be tuned to, and no corresponding schedule information canbe displayed for, any channel not entered in the viewer preference listwhen it is activated. In this regard, it should be noted that setting akey lock access in the Parental Guidance 301, MPAA 308 or Channel Block303 categories produces a different result than when using other displaycriteria, such as the Channel Preference List of preferred channelsdiscussed above. Thus, while a key lock access will prevent audio andvideo program information, but not schedule information, from beingdisplayed or ordered absent entry of an authorization code, if aparticular channel is included in the Channel Preference list and alsohas a key lock access activated in the Channel Block category 303 of theKey Lock Access mode, that channel or its corresponding scheduleinformation will not be displayed at any time.

To deactivate a previously selected viewer preference list, the usertoggles the appropriate check-mark icon key on the remote controller 40of FIG. 4. Once deactivated, the system defaults to displaying andtuning all available channels, as well as displaying scheduleinformation for all available channels.

Alternatively, the viewer preference list 81, if activated, can be usedto control tuning and display of schedule information only in selectedmodes, such as only in the FLIP mode, thus allowing the user to tune andview corresponding schedule information only for those channels enteredin the preference list 81 in the FLIP mode, while viewing all channelsand corresponding schedule information in all other modes.

In this latter configuration, as well as in the instance where nochannel preference list is activated and the system is in default mode,if a channel appears in the viewer preference list 81 that correspondsto a service not subscribed to by the user, the microcontroller 16causes an ordering submenu to appear instead of displaying a programsignal along with the graphic overlay, as shown in FIG. 9. This submenuindicates to the user that he does not currently subscribe to theselected service, and then asks the user if he would like to order theservice. If the user responds affirmatively, the program schedule systemtakes the user to another ordering submenu to confirm the user'srequest, as with impulse ordering.

The program guide also may be configured with a Locator screen 201, asshown in FIG. 37, which aids the viewer in channel selection anddefinition of a favorite channel list. The Locator screen 201 displaysall available channel numbers grouped according to the source of theprogram information appearing on any particular channel at anyparticular time, e.g., broadcast, cablecast, pay-per-view, near video ondemand, satellite, or other source of program material. Thus, theLocator screen 101 can be used to locate any particular channel orservice because the groupings provide a quick and efficient method forscrolling through the list of available channels. The channel numbersalso may be grouped according to other criteria, such as programcategory, program content, program rating or other content-basedstandard, time of availability, numerical order, or other logicalgrouping.

In the example shown in FIG. 37, the user navigates within the Locatorscreen 201 using the direction keys 43A and 43B on the remote controller40. The right and left direction keys 43B move the selection cursorwithin the category rows, while the up and down direction keys 43A areused to select a particular category. From the Locator screen 201, anyparticular channel can be selected for viewing by positioning theselection cursor on the desired channel and depressing either the enterkey 44 or an optional tune key (not shown) on the remote controller 40.

In addition to aiding in channel selection, the Locator screen 201 alsoprovides the user with the ability to conveniently define favoritechannel lists. To do so, the user first moves the selection cursor tothe desired channel by using the direction keys 43A and 43B or numericdigit keys 42 on the remote controller 40, and then depresses a favoritechannel key 46A provided on the remote controller 40, which causes thedisplay to change in some manner or characteristic as an indication thatthe channel has been selected as a favorite channel, such as by changingthe color of the channel identification text or the text background, bydisplaying an appropriate icon or by some other appropriateidentification scheme. In the remote controller 40 shown in FIG. 4, thepound key “#” can function as the favorite channel key.

Also, if multiple favorite channel lists are being used, the user woulddepress the appropriate favorite channel key on the remote controller toselect a particular list before depressing the favorite channel key. Forexample, as discussed above, the remote controller 40 shown in FIG. 4,has three color-coded check-mark favorite channel keys 48A, 48B and 48C,which provide for at least three individual favorite channel lists forthree individual users. Different identification characteristics couldbe displayed on the Locator screen 201 to indicate that a particularfavorite channel list is selected. For example, the icon or image usedto enable a favorite channel list on the remote controller, such as thecheck mark key 48A used on the remote controller 40 shown in FIG. 4,could be displayed on the Locator screen 201, as well as other screensof the program guide, when a favorite channel list is enabled.Alternatively, the color of the displayed text or background could bechanged to match the color of the selected favorite channel key.

The Locator screen 201 may be accessed via several paths. For example,it may be included as a virtual channel that is conveniently positionedin the channel-tuning sequence, such as between the highest and lowestavailable channel numbers—for example, a virtual channel 0. To the user,such a virtual channel appears to be a conventional channel. However, itrequires no additional bandwidth as a carrier. For example, it can bedigitally produced at the subscriber station or included in anappropriate blanking interval in existing bandwidth frequencies. In thismanner, the virtual channel is accessible either by entering thecorresponding channel number using the numeric digit keys 42 on theremote controller, or by using the up and down direction keys 43A towrap around from the highest to the lowest channel number, or viceversa. As shown in FIG. 38, it also may be desirable to provide asuitable identifier, such as an icon or text message 210, in the MAINMENU display 215, from which the user could access the Locator screen201 simply by highlighting the identifier 210 with the selection cursorand depressing the enter key 44 on the remote controller 40.Alternatively, the remote controller may be provided with a keycorresponding to the Locator screen 201 which would cause themicrocontroller to display the Locator screen 201 when the userdepressed it.

In addition to Channel Preference or Favorite Channel keys, the remotecontroller 40 can also be supplied with a number of user-activatedcategory preference icon keys, e.g., movies, sports, or children'sprogramming. The system can be adapted to present to the user only thoseprograms meeting particular preference category when it is activated bythe user. As with the Channel Preference icons, the microcontroller maydisplay the icon corresponding to the activated preference category toremind the user of the currently activated mode of system operation.

The question mark icon 162 at the far right of the third horizontal barin the menu of FIG. 16 identifies a program guide system “Help” mode inwhich information explaining the operation of the system is displayedfor the user. Again, by manipulating the cursor using the appropriatekeys on the remote controller, the user can select this mode. Onceselected, the next submenu appearing in the Help mode asks the user toidentify the particular portion of the system about which the user wouldlike to view Help information.

The icons appearing in the last horizontal bar of the MENU mode identifycertain interactive and/or other types of information services which theprogramming system, acting as a gateway, makes available to the user asshown in FIG. 17. By manipulating the cursor, the user can select anyone of the identified services, as shown in FIGS. 31-35.

For example, if the user initially selects the “X*PRESS” icon appearingin the last horizontal bar, he is presented with a submenu such as thatshown in FIG. 31. Using the direction arrow and enter keys on the remotecontroller, the user selects one of the three entries appearing in thedisplay of FIG. 31. Once a particular entry is selected, the electronicprogram guide connects the user to the selected service and passescontrol to the particular service application software, as shown inFIGS. 32-35.

Alternatively, the remote controller 40 can be supplied with a pluralityof content-specific keys corresponding to a plurality ofcontent-specific categories of programming, e.g., a Sports key, Newskey, Movie key, etc. When the user depresses a content-specific key, acontent-specific mode is initiated. In FIG. 4, the remote controller isequipped with a Sports key 49. If the user depresses the Sports key 49,the microcontroller will limit the display of programs and/or programschedule information to those that are sports-related. Themicrocontroller will block all other programming or schedule informationfrom appearing on the television receiver. The microcontroller can beadapted to distinguish programs and schedule information that aresports-related by examining an appropriate code associated with theprogram or schedule information.

As discussed above, coding can be accomplished using any number ofmethods, such as by including an appropriate code in the verticalblanking interval of the program signal, or in an appropriate memorylocation in the database record of the program schedule information, orif the schedule information is being received on a broadband network, byincluding it in an appropriate blanking interval. The user activates acontent-specific mode by depressing the appropriate content-specific keyin any mode of operation of the electronic programming guide, includingthe aforedescribed FLIP, BROWSE or MAIN MENU modes, as well as when noschedule information is being displayed and only a program signal isvisible on the television receiver. Once a content-specific mode isrequested by the user, the microcontroller immediately and directlyenables the content-specific programming criteria, and maintains it forall operating modes of the guide until disabled, which can beaccomplished, for example, by toggling the Sports key 49.

Instead of a dedicated content-specific key, such as Sports key 49, thesystem may be configured with a single, generic content-specific key,which, when activated, would cause the microcontroller to display acontent-specific menu containing a list of all content-specificcategories available to the user. The user then could highlight aparticular category by manipulating the selection cursor using thedirection arrow keys on the remote controller and select it bydepressing the ENTER or OK key 44. As an alternative to using acontent-specific key on the remote controller, access to thecontent-specific menu can be effected by providing an appropriateidentifier in another menu screen of the electronic guide, such as inthe LOCATOR, SETUP or MAIN MENU screens.

In addition to blocking all non-selected content-specific programmingwhen a particular content-specific category has been selected, themicrocontroller can be programmed to enable all added-value programmingor services that are specially related to the selected content-specificcategory. For example, if the user activates a Sports content-specificmode, the microcontroller, in addition to allowing only sportsprogramming or schedule information related to sports programming to bedisplayed, will proactively seek out and enable all sports relatedadded-value services, such as related trivia or video games, up-to-datescores while a game is in progress, team schedules, replays of priorgames of the selected teams or players, ticket or souvenir purchasing,etc. Thus, the information available from the programming or service canbe integrated into the environment of the electronic program guide.Rather than simply passing control to another service as describedabove, in this manner the electronic program guide would function as asystem integrator or interface to combine the available added-valueinformation into a package within the electronic guide environment, thusessentially creating a series of modular electronic program applicationscorresponding to a variety of available content-specific categories.

The Setup screen shown in FIG. 40 also includes a Text Location category275, which contains the textual entries “Bottom of Screen” and “Top ofScreen.” By navigating to the Text Location category 275 using the upand down direction keys 43A on the remote controller 40, and to eitherthe “Top” or “Bottom” entries in that category using the left and rightdirection keys 43B on the remote controller, and then depressing theenter or select key 44, the user can control the position of the overlaywindows used to display information in various operating modes of theelectronic program guide. The Setup screen of FIG. 40 provides the userwith two positional choices: the top or bottom of the screen. Dependingon the modes of operation of the program guide, it may be desirable toprovide the user with more positional choices in viewing area of thetelevision receiver, or to provide the user with the ability to choose adifferent position for information displayed different operating modes.

One of the novel features of the disclosed invention is the textfitsystem. The preferred embodiment of the text fit system includes aninteractive computer program used to edit the program listings databefore it is transmitted to the user and stored in memory. Theinteractive system operates as follows: unedited (or partially edited)program listings information is loaded into data a processor. The dataincludes program titles, program schedule times, duration, category, aswell as additional descriptive information dependent on the type ofprogram. For example, for movies the data includes the MPAA rating, yearof the movie, whether it is in black and white, and a list of starringactors and actresses.

The data processor extracts only the program title data which includestelevision program titles as well as movie titles, sporting events andtitles for other special events. Based on the duration of the program,the data processor first analyzes the listings data to determine whatgrid size listings are needed for each title. Thus, a two hour moviecould require four different edited titles to fit into each of the fourdifferent size grid cells (30, 60, 90, 120 minutes). The data processorthen determines how much space is required to display the title based onits character length. If the title is to be displayed in the programschedule grid using a proportional font and character to characterkerning, the data processor may also account for these factors indetermining the space required to display a title. The determinationwould than be based on the number of pixels required for the particularcombination of characters in the title. The amount of space availablefor display of a title depends on the size of the grid cell and thespace required for display of icons, when activated.

If the data processor determines that a full title requires too muchspace to fit into one or more grid cells, the title is then presented tothe editor using a suitable display device connected to the dataprocessor, such as a CRT. The editor is then queried to alter the titleso that it will fit in the allotted space. If the title must be editedfor more than one cell size, the editor is queried to edit each of theseseparately. In the preferred embodiment of the interactive program, theeditor is shown in real time whether the edited title will fit in thedesignated grid cell.

In the preferred embodiment, two lines of text are displayed in eachgrid cell of the program listings. The title, as edited, appears on thefirst line, and if necessary, continues onto the second line. Thedecision to wrap-around to the second line is based on whether naturalbreaks exist in the title such as spaces between words, commas, periods,hyphens, etc. These are standard techniques used in word processingsoftware routines. The editor may also be queried to edit a title in thesituation where the full title will fit on the allotted two lines, but ahyphen is required because there are no natural breaks in the title.

Prior to querying the editor to shorten a title, the data processorcompares the title with a stored library of shortened titles todetermine if the title had previously been shortened while editinganother listings database. Each time changes are made by the editor to atitle, the shortened title is added to the library. It is apparent thatthis process of building a library of shortened titles greatly reducesthe manual input required.

A flow chart illustrating the process by which the text fit systemoperates is shown in FIG. 42. The chart illustrates the operation ofediting a listing for display in a program grid for a single platform,but operation is the same for all platforms.

Text editing may be necessary in other situations besides that wheremultiple size grid cells are used for display of the same title. Forexample, the disclosed program guide may run on several differentplatforms, with each one having different constraints and grid cellspace availability. Some may not display the text in proportional fontsand some may have other limitations reducing the available space. Thus,in the preferred embodiment the interactive program would request editsfor all platforms for which they required at the same time. In addition,editing of text may be required for display modes other than a grid ofprogram listings. For example, in the “Listings by Channel” display ofFIG. 20, programs are listed on an entire, fixed-length line, but thelength of the line may vary from platform to platform, so that the textfit system may be employed for the purpose of editing listings for thedifferent platforms in this display mode as well. The space availablefor the display of text will also depend on how much space is reservedfor icon display. The same process as that shown in FIG. 42 would apply,except that there would be no need to determine what grid sizes areneeded because a fixed length line is used for display rather thanmultiple sized grid cells.

It will be apparent to those of skill in the art that the disclosed textfit system has applications beyond that of title editing alone. Thesystem may be easily modified to provide editing of messages, “i” screenstorylines, pay-per-view promotional copy, and similar text messages sothat they will fit into the designated space available for display ofthe text. In fact, the system may be used to edit any text for displayin the disclosed program schedule system.

The computer program for the microcontroller 16 may also include aschedule for the display of varying background views upon which theprogram schedule information is overlaid either partially or in a fullscreen display. The background views may be stored as bit maps in memoryor in another storage medium, such as an optical storage device. Forexample, the microcontroller 16 may be programmed to issue a command tothe VDG every morning at 6:00 AM to display a sunrise in the background.The background may then be changed accordingly throughout the day to,for example, a blue sky or a nighttime view. It also may vary, e.g., bytime of day, day of week, month, year or season. The mood backgroundalso could change depending on the particular category of programmingthat the user is watching or to which selected schedule informationpertains. The mood background also may be adapted to display scenes thatreflect the particular viewing area in which the user is situated, likethe Rocky Mountains, or Mt. Rainier, etc. It also may be possible todisplay standard scenes, such as an ocean or forest scene. Moreover, theaudio background also could be adjusted to relate to the particular moodbackground then being displayed. In addition, different background viewsmay be used for holidays and special events, such as Christmas, Fourthof July, Superbowl Sunday, etc. The purpose of the background views isto help ease the monotony of viewing program listings. Themicrocontroller 16 could be adapted automatically to coordinate thedisplay of the mood background. The user also could be given the abilityto choose from among various mood background displays by adapting themicrocontroller to display an appropriate mood option menu that liststhe mood background options available to the user and allows the user toselect one or more by manipulating the selection cursor. Access to sucha mood option menu could be achieved by supplying an appropriateidentifier, textual or visual, in an appropriate menu of the system,such as the LOCATOR or SETUP screen.

Additionally, the electronic program guide could be configured to storea unique digital identifier for each program along with its scheduleinformation and later use the identifier—e.g., by transmitting it—toindicate to a recording or storage device, such as a video recorder,that the user wishes to record the program. The program guide could alsouse the identifier to automatically control operation of the videorecorder. The electronic program guide could also be configured to useother stored schedule information for this purpose.

Operation of the interactive home shopping feature of the presentinvention may be explained with reference to FIG. 43. FIG. 43aillustrates a “by time” screen of the EPG listing the different programsscheduled to air at a particular time on the different channels. Asshown in FIG. 43a, certain listings are provided with an asterisk or“star” icon 401 indicating that a product or service associated witheach of the listings is available and may be ordered remotely by theuser. The remote control unit 40 discussed above may be furtherconfigured with a star button used to order products and services.Alternatively, the existing star key on the keypad 42 may be used. Theparticular icon used to designate that the indicated listing has anassociated product or service available for purchase is not part of theinvention—any convenient symbol may be used.

The screen shown in FIG. 43a indicates that two listings, “Full MetalJacket,” and “Beverly Hills Cop III,” include associated products orservices. Upon depressing the star button on the remote control whilethe cursor is highlighting the program listing for “Full Metal Jacket,”the format selection screen shown in FIG. 43b is displayed. This screeninforms the user of the particular product or service available and thevarious options and/or formats available, as well as the price of thedifferent options and formats. As shown in FIG. 43b, the left and rightarrow buttons 43B on the remote control unit 40 are used to scrollthroughout the different formats. As the user scrolls, the pricedisplayed automatically changes to reflect the price for the currentlyselected format. Upon selection of the particular product format (bydepressing the “OK” or enter key 44 on the remote control unit 40),i.e., a VHS format cassette, the user is presented with the screen shownin FIG. 43c to select the payment method and method of shipment. Theuser may scroll through the different payment methods which may includevarious credit cards as well as the option to add the purchase price tothe user's bill for program services. At the bottom of the screen, theuser enters his credit card number and expiration date. The user mayalso scroll through various methods of shipment, and the total pricechanges accordingly based on the different shipment methods. Uponselection of the payment and shipment methods, the user is presentedwith the screen in FIG. 43d to review and confirm the order. A purchasecode may be used to prevent unauthorized persons from ordering productsor services as shown in FIG. 43e. The purchase code may be selected inadvance in the same manner as program lock-out code discussed above.

The screen in FIG. 43d may be used where the user has previously enteredhis address and phone number. The user may have previously entered thisinformation in advance using a set-up screen to input all the necessaryinformation upon first use of the product ordering service. The setupinformation may also include one or more credit card numbers so thatwhen a product is ordered, the user need only select a credit card froma list previously entered. Alternatively, the user's address and phonenumber may be extracted from the program services billing system.

The star icon may also be used to indicate that more than one product orservice associated with the television program is available. FIG. 44illustrates one embodiment of a screen that may be presented to the userupon depressing the star button while the cursor is highlighting theprogram “48 Hours.” As shown in FIG. 44, both a transcript and tape (VHSor Beta format) are available. Using the arrow buttons 43B on the remotecontrol unit 40, the user highlights the desired product and depressesthe “OK” button to order the product.

Products and services may be ordered from any of the different modes ofthe EPG by including the star icon in the program schedule display ineach of the different modes of the system. FIG. 45 illustrates use ofthe star icon in connection with the flip mode of the system discussedabove.

There are many potential applications for this type of product orderingservice. In addition to ordering a videocassette or transcript of aprogram, various ancillary products may similarly be ordered, such astee shirts and other apparel, books, movie soundtracks, toys, etc. Thedisclosed product ordering system is especially useful in conjunctionwith programs that are copy-protected, such as pay-per-view (PPV)movies. These programs cannot be recorded using a VCR so that thedisclosed product ordering service presents a powerful marketing tooland permits users to order their own, professionally produced, licensedcopy of, e.g., a PPV movie simply by depressing a button on their remotecontrol device. One example of a service that can be provided is theordering of tickets for television programs with live audiences. Programlistings for such programs as game shows and talk shows could utilizethe star icon to order audience or participant tickets for the show. Thestar icon may also be used with the program listings for local sportingevents to order tickets for the listed event as well as future events.

The use of the disclosed product and service ordering capability neednot be limited to television programs. For example, if the cable systemoperator or other program provider provides music as well as televisionchannels, products and services associated with music programs may alsobe ordered through the guide. FIG. 46 illustrates one embodiment of ascreen that may be used for ordering a product or service associatedwith a music program. Products that may be ordered include a CD orcassette tape of the song or album. The ordering service may also beused to order tickets to an upcoming concert of the artist that performsthe selected music program.

The use of the EPG thus presents a new vehicle for marketingprogram-related products and services capable of reaching a very largeaudience, including those who would not normally tune to existing homeshopping channels.

Product and service ordering may be readily implemented in the EPG ofthe present invention. The different display screens that comprise theEPG are controlled by the microcontroller 16, which accesses the programlistings data for each of the programs. If the data indicates that aproduct or service associated with a particular program is available,the microcontroller 16 will display the star icon whenever theparticular program listing is displayed in the different modes of theEPG. The microcontroller 16 also controls the display of user-selectedoptions in the EPG so that when a particular listing is highlighted bythe user, the microcontroller 16 displays appropriate orderinginformation when the user depresses the star key on the remote controlunit 40 so that correct product or service information is displayed. Theordering of services is discussed above in connection with FIG. 9regarding the ordering of premium services and pay-per-view events.Products may be ordered in a similar manner using either a telephoneline, coaxial cable, optical fiber, or wireless transmission as thereturn path for placing user orders. There are many techniques known inthe art that may be used for providing information on products andservices ordered by a subscriber to a cable television service at aremote location for processing at a central location. For example, thesame techniques used for billing subscribers for pay-per-view events maybe applied to product ordering as well. In one embodiment, themicrocontroller 16 stores subscriber orders in memory for subsequenttransmission using the subscriber's telephone lines. The microcontroller16 is programmed to dial the central ordering location to placesubscriber orders. Typically, a toll free “800” number is utilized forthis purpose and calls are placed at times when the subscriber is notlikely to be using the telephone. The microcontroller 16 may beprogrammed so that orders are accumulated throughout the day and a callis placed once per day to transmit all the accumulated orders.

Another possible technique for placing orders is to use the cableitself. This technique may be used in both one-way and two-way cableplants. In a one-way cable plant system, orders may be stored at theuser location in a set-top box provided by a local cable system. Theset-top box may then be polled by the cable headend using techniquesknown in the art to determine if any orders are stored for transmissionto the cable headend. If orders are present, they are provided to thecable headend for processing.

A two-way cable plant is most advantageous if real-time orderingcapability is desired. Using the return channel, orders may be placedand immediately transmitted upstream to the cable headend where they canbe processed or forwarded to a separate processing center. In thismanner, orders may readily be processed the same day and shipped to theuser via overnight courier.

Another possible technique is to control the call-in of orders fromsubscribers from the central location. For example, the cable headendcould poll the subscribers and program the set-top boxes to call thecentral location at a particular time so as to stagger the call-in timesand avoid overloading the processing center. Finally, it is alsopossible for the cable headend to connect to each user's set top box viatelephone lines and call-out to each viewer sequentially to determine ifany orders are pending.

It is also possible to maintain the product ordering feature entirelyseparate from the cable system or other program provider operations. Theentity providing the EPG may maintain its own processing equipment atthe cable system headend or other program provider location so as toreceive order requests directly from users without the need for anypre-processing by the cable headend. User requests identified as productorders may then be diverted directly to the EPG provider's processingequipment. This type of system architecture allows for more centralizedmanagement of a nationwide product ordering system.

The information on each of the products and services available may beprovided to the users in any of a number of ways. In one embodiment, thedatabase of program schedule information stored at each user locationmay include all the information for each product and service—adescription of the product(s) or service(s), price, and any otherinformation required. The disadvantage of this method, however, is thatif a large number of programs include products and services availablefor ordering, the demands on the system memory are great. Another methodis to standardize the products and services available so as to includein the database only a minimal amount of information necessary toidentify the type of product or service. For example, if onlyvideocassettes and transcripts are available, the database need onlyinclude a flag for each listing indicating whether a videocassette,transcript, or both are available. Further simplification is possible ifall transcripts and all videocassettes are priced the same. The screensillustrated in FIGS. 43-46 may then be standardized screens for allproducts so as to conserve memory space.

It will be recognized by those of ordinary skill in the art that manyvariations are possible. To provide more flexibility, differentcategories of products and services may be established for differenttypes of programs, such as movies, news programs, sports, pay-per-view,etc. The microcontroller 16 may then be configured to select the productor service information displayed to the user based on the type ofprogram. In this manner, when the user depresses the product orderingicon on the remote control, the microcontroller 16 determines the typeof program displayed in the program guide and selects the appropriateordering screens for display. Similarly, with regard to price, differentcategories of prices may be set. The microcontroller 16 may then readthe price category for the product from the database and display theappropriate price for the product in the screens 43-46.

An alternate embodiment of the disclosed product ordering system may beimplemented as follows. Rather than indicating the availability of aproduct or service only in association with the program listings storedat the user location, product availability may be indicated when theuser is not in one of the program schedule display modes by overlayingthe star icon on a program display signal if there is a product orservice associated with that program. In this manner, products andservices associated with programs not included in the program scheduleinformation database stored in DRAM 18 may also be made available tousers. This embodiment is especially useful in connection withcommercial advertisements and permits the user to place an order for theproduct or service being advertised using the remote control device 40.Alternatively, the user may simply request to be placed on a mailinglist to receive additional information about the product or servicebeing advertised as well as other related products and services.

This alternate embodiment (which may be used in conjunction with theabove-described embodiment) may be implemented as follows. The receivedprogram signal for the commercial or other program may include theinformation about the product or service associated with the program.The information may be included in the vertical blanking interval (VBI)of a standard analog television signal, a technique well known to thoseof ordinary skill in the art. Similarly, the information may be includedin an in-band digital channel for programs delivered in digital form.One advantage of including the information in the VBI or an in-banddigital channel is that it eliminates the need to consume memory spaceat the user location to store product and service information.

The modified system illustrated in the block diagram of FIG.47 is oneembodiment of a system that incorporates a product ordering system usingthe VBI into the program schedule system of the present invention. Inthis modified system, a second receiver 30 is used to receive thetelevision channel signal tuned by tuner 28 under control ofmicrocontroller 16. The signal is then provided to a VBI decoder 30Awhich decodes the data contained in the VBI of the received televisionsignal. This data is then provided to buffer 15 and microcontroller 16in the manner described above for the program schedule information. Themicrocontroller 16 then determines whether the currently-tuned channelis displaying a program for which a product or service is available asindicated by the data in the VBI. If there is a product or serviceavailable, microcontroller 16 causes the product availability icon to beoverlaid on the television signal. In a preferred embodiment, thecurrently-tuned television signal comprises a commercial advertisementand the product or service available is associated with the commercial.Either a one-step or multi-step ordering process may be utilized. Forexample, in the simplest embodiment, only a single product, i.e., aproduct brochure, may be available. In this case, the microcontroller 16may be configured to cause the video overlay device 25 to display astandard on-screen message such as “Press * to receive a brochuredescribing this product.” This embodiment assumes that the user haspreviously provided his name and address or that the information isextracted from the program services billing system as discussed above.Alternatively, a multi-step process similar to that described above maybe implemented. Upon depressing the ordering icon key, themicrocontroller 16 may extract additional information from the VBIdescribing the product or service and cause the video overlay device 25to display it on the receiver. The microcontroller may then present aseries of screens to the user similar to those shown in FIG. 43 toobtain the information required from the user. In this case, however,the information for composing the screens is obtained from the programsignal rather than the stored program schedule information. It is alsopossible to store the screen formats as bit maps in memory and use theinformation from the VBI to complete the information in the screens.

If the user chooses to order the product or service, the microcontrollerreceives the request and may process it as follows. In the simplestembodiment, the microcontroller may simply time and channel stamp therequest. By providing the time of the request and the channel tuned bythe user at the time of the request, the system operator may determinethe commercial or other program the viewer was watching at the time theproduct or service was ordered and thus provide the correct product orservice to the user. Alternatively, in a more sophisticated system, themicrocontroller 16 may extract from the VBI or in-band digital channelproduct identification information and include the information with theuser's request to identify the product or service ordered. The user'srequest may then be provided to the cable headend and processed in anyof the manners described above in connection with products and servicesassociated with a program listing.

The form and content of a particular computer program to implement theinvention disclosed herein will be readily apparent to those skilled inthe art of video system programming and graphic display. A flow chartshowing the operation logic of the system is shown in FIGS. 36a-d. Itwill also be appreciated by those skilled in the art that there can bedeparture from the specific embodiment of the invention described hereinwithout departing from the true scope of the claims appended hereto.

We claim:
 1. A method for allowing a user to order products with an electronic television program guide that is implemented using a data processor controlled by the user, comprising: displaying program listings with the electronic television program guide; displaying information with the electronic television program guide indicating that a product other than electronically-delivered video is available for purchase from the electronic television program guides wherein the product is related to television programming; and allowing the user to order the product other than the electronically-delivered video using the electronic television program guide.
 2. The method defined in claim 1 further comprising displaying information on a prerecorded video that is available for purchase.
 3. The method defined in claim 1 further comprising: displaying information on a prerecorded video that is available for purchase; and displaying information on which media formats are available for the prerecorded video.
 4. The method defined in claim 1 further comprising: displaying information on a prerecorded video that is available for purchase; and allowing the user to select a desired media format for the prerecorded video.
 5. The method defined in claim 1 further comprising displaying information on available payment methods for purchasing the product.
 6. The method defined in claim 1 further comprising allowing the user to select a desired payment method for purchasing the product.
 7. The method defined in claim 1 further comprising displaying information on which credit cards may be used for purchasing the product.
 8. The method defined in claim 1 further comprising allowing the user to select a desired credit card to use in purchasing the product.
 9. The method defined in claim 1 further comprising displaying information on which methods for shipping the product are available.
 10. The method defined in claim 1 further comprising allowing the user to select a desired shipment method for shipping the product.
 11. The method defined in claim 1 further comprising: displaying information on a plurality of different shipment methods available for shipping the product; and displaying different price information for each shipment method.
 12. The method defined in claim 1 further comprising allowing the user to enter a credit card number for use in purchasing the product.
 13. The method defined in claim 1 further comprising allowing the user to select a credit card to use in ordering the product from a list.
 14. The method defined in claim 1 wherein the data processor is responsive to commands from a remote control, the method further comprising allowing the user to order the product using the remote control.
 15. The method defined in claim 1 wherein the information displayed indicating that the product is available is a visual indicator and wherein the data processor is responsive to commands from a remote control having a key labeled with the same visual indicator, the method further comprising allowing the user to order the product using the remote control key labeled with the visual indicator.
 16. The method defined in claim 1 further comprising displaying the program listings as part of a by time screen.
 17. The method defined in claim 1 further comprising: allowing the user to highlight a program listing for which an associated product is available; and allowing the user to order the associated product by pressing a remote control key while the program listing is highlighted.
 18. The method defined in claim 1 further comprising allowing the user to confirm an order for the product.
 19. The method defined in claim 1 further comprising presenting a screen that allows the user to enter a purchase code.
 20. The method defined in claim 1 further comprising presenting a screen that allows the user to enter address information that is used when ordering the product.
 21. The method defined in claim 1 further comprising extracting the user's address from a program services billing system.
 22. The method defined in claim 1 further comprising: displaying a television program; simultaneously displaying a single program listing; and simultaneously displaying the information indicating that the product is available.
 23. The method defined in claim 1 further comprising: displaying a television program; simultaneously displaying a single program listing in a FLIP mode; and simultaneously displaying the information indicating that the product is available.
 24. The method defined in claim 1 further comprising: displaying a television program; simultaneously displaying a single program listing; and simultaneously displaying the information indicating that the product is available, wherein the product is associated with the single program listing.
 25. The method defined in claim 1 wherein the product is apparel associated with a given one of the program listings, the method further comprising allowing the user to use the electronic television program guide to order the apparel associated with the given one of the program listings.
 26. The method defined in claim 1 wherein a given one of the program listings is a program listing for a pay-per-view program and wherein the product is associated with the pay-per-view program, the method further comprising allowing the user to order the product associated with the pay-per-view program using the electronic television program guide.
 27. The method defined in claim 1 wherein a given one of the program listings is a program listing for a copy-protected pay-per-view program and wherein the product is a licensed video associated with the copy-protected pay-per-view program, the method further comprising allowing the user to order the licensed video associated with the copy-protected pay-per-view program using the electronic television program guide.
 28. The method defined in claim 1 wherein the product is tickets associated with a given program listing, the method further comprising allowing the user to order the tickets using the electronic television program guide.
 29. The method defined in claim 1 further comprising: displaying information on music programs that are available with the electronic television program guide; and allowing the user to order products associated with the music programs using the electronic television program guide.
 30. The method defined in claim 1 further comprising: displaying information on music programs that are available with the electronic television program guide; and allowing the user to order recordings associated with the music programs using the electronic television program guide.
 31. The method defined in claim 1 wherein the data processor is connected to a memory, the method comprising: storing program schedule information for the program listings in the memory; and storing data with the schedule information that indicates that the product is available for ordering with the electronic television program guide.
 32. The method defined in claim 1 wherein the data processor is connected to a memory, the method comprising: storing program schedule information for the program listings in the memory; and storing price data for the product with the schedule information.
 33. The method defined in claim 1 wherein the data processor is connected to a memory, the method comprising: storing program schedule information for the program listings in the memory; and storing a description of the product with the schedule information.
 34. The method defined in claim 1 further comprising allowing the user to order a standardized product from the electronic television program guide.
 35. The method defined in claim 1 further comprising allowing the user to order products in different categories with the electronic television program guide.
 36. The method defined in claim 1 further comprising displaying information on products in different categories to the user with the electronic television program guide.
 37. The method defined in claim 1 wherein different products are available for ordering with the electronic television program guide, the method further comprising: allowing the user to select a given one of the program listings; and displaying information on the available products to the user based on the type of program listing that is selected.
 38. The method defined in claim 1 wherein the data processor is connected to a cable over which television programming is provided for display for the user, the method comprising placing the order using the cable in real time.
 39. The method defined in claim 1 wherein the data processor is connected to a cable that is connected to a headend that is connected to a separate processing center, the method comprising: transmitting the order to the headend using the cable; and forwarding the order from the headend to the separate processing center.
 40. The method defined in claim 1 wherein the data processor is connected to a cable that is connected to a headend that in turn is connected to a separate processing center, the method comprising: transmitting the order to the headend in real time using the cable; and forwarding the order from the headend to the separate processing center.
 41. The method defined in claim 1 wherein the data processor is connected to a memory and to a cable over which television programming is provided for display for the user, the method comprising: storing information on the order in the memory; and transmitting the order over the cable at a time that is staggered with respect to other orders.
 42. The method defined in claim 1 wherein the data processor is connected to a telephone line, the method further comprising transmitting the order over the telephone line.
 43. The method defined in claim 1 further comprising: displaying a television program; and overlaying an indicator that indicates product availability on top of the television program.
 44. The method defined in claim 1 further comprising: displaying a television program; and overlaying an indicator on top of the television program that indicates that a product associated with the television program is available.
 45. The method defined in claim 1 further comprising allowing the user to request that the user be placed on a mailing list to receive information about the product.
 46. The method defined in claim 1 wherein the product is associated with a television commercial, the method further comprising: receiving a television signal for the television commercial; displaying the television commercial; and extracting information on the product from the television signal.
 47. The method defined in claim 1 further comprising: providing information on the product with a television signal; and extracting the information on the product from the television signal.
 48. The method defined in claim 1 further comprising: providing information on the product in an in-band digital channel over which television programs are delivered in digital form; and retrieving the information on the product from the in-band digital channel.
 49. The method defined in claim 1 wherein the product is associated with television programming, the method further comprising: receiving a television signal for the television programming; displaying the television programming; extracting information on the product from the television signal; and displaying the information on the product to the user when the user presses a remote control button.
 50. The method defined in claim 1 wherein the product is associated with television programming, the method further comprising: receiving a television signal for the television programming; displaying the television programming; and overlaying a message on top of the programming indicating that the user may obtain material related to the televison programming by pressing a remote control button.
 51. The method defined in claim 1 further comprising time and date stamping an order placed by the user with the electronic television program guide.
 52. The method defined in claim 1 wherein the product is associated with television programming, the method further comprising: receiving a television signal for the television programming; displaying the television programming; extracting information identifying the product from the television signal; and including the information identifying the product with an order placed by the user with the electronic television program guide.
 53. The method defined in claim 1 further comprising: displaying a television program; simultaneously displaying a single program listing in a BROWSE mode; and simultaneously displaying the information indicating that the product is available. 